Как уже отмечали другие, синтаксис: (?<GroupName>....)
.
Вот пример, демонстрирующий, как создать группу с именем Key
и группу с именем Value
и, что не менее важно (но часто забывают), - как извлечь группы по имени из полученного объекта соответствия:
string s = "foo=bar/baz=qux";
Regex regex = new Regex(@"(?<Key>\w+)=(?<Value>\w+)");
foreach (Match match in regex.Matches(s))
{
Console.WriteLine("Key = {0}, Value = {1}",
match.Groups["Key"].Value,
match.Groups["Value"].Value);
}
Обычно я бы не использовал именованные группы для очень простых выражений, например, если есть только одна группа.
Для более сложных регулярных выражений со многими группами, содержащими сложные выражения, было бы неплохо использовать именованные группы. С другой стороны, если ваше регулярное выражение настолько сложно, что вам нужно это сделать, то может быть хорошей идеей, чтобы посмотреть, сможете ли вы решить проблему другим способом или разбить его на свой алгоритм на меньшие, более простые шаги.