См. Методы Regex.Replace
с перегрузкой MatchEvaluator
. MatchEvaluator
- это метод, который можно указать для обработки каждого отдельного совпадения и возврата того, что следует использовать в качестве текста замены для этого совпадения.
Например, это ...
Кошка перепрыгнула через собаку.
0: THE 1: CAT перепрыгнул через 2: THE 3: DOG.
... является выводом из следующего:
using System;
using System.Text.RegularExpressions;
namespace MatchEvaluatorTest
{
class Program
{
static void Main(string[] args)
{
string text = "The cat jumped over the dog.";
Console.WriteLine(text);
Console.WriteLine(Transform(text));
}
static string Transform(string text)
{
int matchNumber = 0;
return Regex.Replace(
text,
@"\b\w{3}\b",
m => Replacement(m.Captures[0].Value, matchNumber++)
);
}
static string Replacement(string s, int i)
{
return string.Format("{0}:{1}", i, s.ToUpper());
}
}
}