Регулярки, запретить вложенность - C#

Узнай цену своей работы

Формулировка задачи:

Добрый день. Например, есть текст string Text = "start первая регулярка end start вторая end start третья end start четвёрая end start пятая end"; и к ней регулярка:
string pattern = @"start(\s|\S)end;
 
                Regex newReg = new Regex(pattern);
                MatchCollection matches = newReg.Matches(Text);
В итоге, количество Совпадений окажется равным 1, так как регулярка берёт первый "start" и последний "end" Но мне нужно чтобы находило 5 совпадений. Как это сделать? Не нашёл параметра, запрещающего вложенные друг в друга регулярки.

Решение задачи: «Регулярки, запретить вложенность»

textual
Листинг программы
            string Text = @"start первая регулярка end
start вторая end
start третья end
start четвёрая end
start пятая end";
 
            string pattern = @"start(\s|\S)+?end";
 
            Regex newReg = new Regex(pattern);
            MatchCollection matches = newReg.Matches(Text);
            foreach (Match m in matches)
            {
                Console.WriteLine(m.Value);
                Console.WriteLine("*******");
            }
 
            Console.ReadKey();

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 4.2 из 5
Похожие ответы