Именованная группа
Запись (?<tag>abc) сохраняет совпадение
в Groups["tag"]. Нумерованные группы
из скобок
тоже остаются доступны по индексу.
Синтаксис
var m = Regex.Match(text, @"(?<tag>abc)");
string part = m.Groups["tag"].Value;
Пример
Давайте прочитать группу tag:
using System;
using System.Text.RegularExpressions;
class Program
{
static void Main()
{
var m = Regex.Match("abcde", @"(?<tag>abc)");
Console.WriteLine(m.Groups["tag"].Value);
}
}
Результат выполнения кода:
"abc"
Пример
Давайте захватить цифры в группу num:
using System;
using System.Text.RegularExpressions;
class Program
{
static void Main()
{
var m = Regex.Match("12345", @"(?<num>\d+)");
Console.WriteLine(m.Groups["num"].Value);
}
}
Результат выполнения кода:
"12345"
Пример
Давайте сравнить имя и индекс Groups[1]:
using System;
using System.Text.RegularExpressions;
class Program
{
static void Main()
{
var m = Regex.Match("abcde", @"(?<part>abc)");
bool same = m.Groups["part"].Value == m.Groups[1].Value;
Console.WriteLine(same);
}
}
Результат выполнения кода:
True
Смотрите также
-
группа захвата,
нумерацияGroups[n] -
обратная ссылка,
повтор захваченного -
просмотр вперёд,
условие без захвата -
Regex,
класс поиска