Advertisement
Mirineo

RegeEx ProblemChains

Feb 22nd, 2017
172
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.57 KB | None | 0 0
  1. using System;
  2. using System.Text;
  3. using System.Text.RegularExpressions;
  4.  
  5. namespace UseYourChainsBuddy
  6. {
  7.     public class Program
  8.     {
  9.         public static void Main(string[] args)
  10.         {
  11.             var inputLine = Console.ReadLine();
  12.             var takePattern = new Regex(@"<p>(.+?)<\/p>");// My lookaround was bad: @"(?<=<p>)(.+?)(?=<\/p>)"
  13.             var replacePattern = @"[^a-z0-9]+";
  14.             var result = new StringBuilder();
  15.             var replaceFirstLetters = new Regex(@"[a-m]+");
  16.             var replaceSecondLetters = new Regex(@"[n-z]+");
  17.  
  18.             MatchCollection matches = takePattern.Matches(inputLine);
  19.             string currentMatch = string.Empty;
  20.  
  21.             foreach (Match match in matches)
  22.             {
  23.                 currentMatch += match.Groups[1].Value.ToString();
  24.             }
  25.  
  26.             currentMatch = Regex.Replace(currentMatch, replacePattern, word => " ");
  27.             currentMatch = Regex.Replace(currentMatch, @"\s+|\n+", word => " ");
  28.  
  29.             foreach (var ch in currentMatch)
  30.             {
  31.  
  32.                 if (replaceFirstLetters.IsMatch(ch.ToString()))
  33.                 {
  34.                     result.Append((char)(Convert.ToInt32(ch + 13)));
  35.                 }
  36.                 else if (replaceSecondLetters.IsMatch(ch.ToString()))
  37.                 {
  38.                     result.Append((char)(Convert.ToInt32(ch - 13)));
  39.                 }
  40.                 else
  41.                 {
  42.                     result.Append(ch);
  43.                 }
  44.             }
  45.  
  46.             Console.WriteLine(result);
  47.         }
  48.     }
  49. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement