Метод NextMatch класса Match продолжает поиск в строке с того места, на котором закончился предыдущий поиск.
Метод Matches класса Regex возвращает объект класса MatchCollection — коллекцию всех фрагментов заданной строки, совпавших с образцом. Рассмотрим теперь пример применения метода Split класса Regex. Этот метод разбивает заданную строку на фрагменты в соответствии с разделителями, заданными с помощью регулярного выражения, и возвращает эти фрагменты в массиве строк. В листинге 15.5 строка из листинга 15.4 разбивается на отдельные слова.
Листинг 15.5. Разбиение строки на слова (методом Split)
using System;
using System.Collections.Generic;
using System.Text.RegularExpressions;
public class Test
{
public static void Main()
{
string text = "Салат - $4. борщ -$3. одеколон - $10.";
string pattern = "[-,.]+";
Regex r = new Regex(pattern);
List<string> words = new List<string>(r.Split(text));
foreach (string word in words) Console.WriteLine(word);
}
}
Результат работы программы:
Салат $4
борщ $3
одеколон $10
Метод Replасе класса Regex позволяет выполнять замену фрагментов текста. Определено несколько перегруженных версий этого метода. Вот как выглядит пример простейшего применения метода в его статическом варианте, заменяющего все вхождения символа $ символами у. е.:
string text = "Салат - $4. борщ -$3. одеколон - $10.";
string text1 = Regex.Replace(text. @"\$", "y.e.");
Другие версии метода позволяют задавать любые действия по замене с помощью делегата MatchEvaluator, который вызывается для каждого вхождения фрагмента, совпавшего с заданным регулярным выражением.