NelIfandieva

RegexMon_Kamelia'sSolutionToLearnFrom

Mar 3rd, 2018
57
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. using System.Text.RegularExpressions;
  7.  
  8. namespace Problem_3.Regexmon_2
  9. {
  10.     class Program
  11.     {
  12.         static void Main(string[] args)
  13.         {
  14.             var input = Console.ReadLine();
  15.             var didiPattern = @"[^A-Za-z-]+";
  16.             var bojiPattern = @"[A-Za-z]{1,}-[A-Za-z]{1,}";
  17.  
  18.  
  19.             while (true)
  20.             {
  21.                 var didiRegex = new Regex(didiPattern); //Това е RegEx репрезентацията на стринга?
  22.                 if (didiRegex.IsMatch(input))
  23.                 {
  24.                     var didiResult = didiRegex.Match(input);// Ето тези променливи не ги разбирам. Match e тип променлива, така ли е?
  25.                     Console.WriteLine(didiResult);
  26.                     var currIndex = didiResult.Index + didiResult.Length;//didiResult.Index e първият индекс, на който имаме съвпадение с Диди, така ли е?
  27.                     input = input.Substring(currIndex);//По този заменяме от същия индекс в input и със същата дължина?
  28.                 }
  29.                 else
  30.                 {
  31.                     break;
  32.                 }
  33.                 var bojiRegex = new Regex(bojiPattern); //Тук ситуацията се повтаря, така че няма какво да те питам едно и също
  34.                 if (bojiRegex.IsMatch((input)))
  35.                 {
  36.                     var bojiResult = bojiRegex.Match(input);
  37.                     Console.WriteLine(bojiResult);
  38.                     var currIndex = bojiResult.Index + bojiResult.Length;
  39.                     input = input.Substring(currIndex);
  40.                 }
  41.                 else
  42.                 {
  43.                     break;
  44.                 }
  45.             }
  46.         }
  47.     }
  48. }
  49. // Генерално не разбирам:
  50. // — Match е вид RegEx променлива ли? По какво да я отлича от
  51. // — Matches/MatchCollection —> За MatchCollection ми е ясно само, че е колекция
  52. // Но не разбирам как да преценявам кога ми трябва Match, кога MatchCollection
RAW Paste Data