MatchEvaluator
MatchEvaluator - это string(Match):
на каждое совпадение передаётся
Match,
а возвращаемая строка подставляется вместо него.
Вызов идёт через Regex.Replace
с лямбдой или методом, принимающим
Match.
Синтаксис
string res = Regex.Replace(input, pattern, match => "...");
Пример
Давайте заменить цифру на "9":
using System;
using System.Text.RegularExpressions;
class Program
{
static void Main()
{
string res = Regex.Replace("a1b", @"\d", m => "9");
Console.WriteLine(res);
}
}
Результат выполнения кода:
"a9b"
Пример
Давайте использовать
Value
совпадения:
using System;
using System.Text.RegularExpressions;
class Program
{
static void Main()
{
string res = Regex.Replace("a12b", @"\d", m => $"[{m.Value}]");
Console.WriteLine(res);
}
}
Результат выполнения кода:
"a[1][2]b"
Пример
Давайте прочитать группу внутри делегата:
using System;
using System.Text.RegularExpressions;
class Program
{
static void Main()
{
string res = Regex.Replace("abcde", @"(abc)", m => m.Groups[1].Value.ToUpper());
Console.WriteLine(res);
}
}
Результат выполнения кода:
"ABCde"
Смотрите также
-
Match,
аргумент делегата -
Groups,
группы внутри замены -
Regex.Match,
поиск совпадений -
группа в шаблоне,
скобки в шаблоне замены