Эта функциональность дает вам возможность легко ссылаться на то, что вы поймали из кода (см. Пример) или из самого регулярного выражения, используя понятное имя вместо индекса.
Простой пример:
Regex regex = new Regex(@"(?<foo>[fF][oO][oO]) \k<foo>");
foreach (Match match in regex.Matches("bar fOO foO foO f0O"))
{
Console.WriteLine(match);
}
Печать
foO foO
Это регулярное выражение позволяет вам поймать "foo" с любой комбинацией заглавных букв, но только если ему предшествует другой "foo" с точно таким же набором заглавных букв. Вы также можете обращаться к своей группе, используя синтаксис match.Groups["name"]
, поэтому в этом примере match.Groups["foo"]
вернет "foO".
Редактировать: Новый пример, который будет использовать синтаксис \ k .