Группы при поиске в C#
Скобки в регулярном выражении создают группы.
После Regex.Match найденный фрагмент
целиком лежит в Groups[0], а содержимое
скобок - в Groups[1], Groups[2]
и так далее:
using System.Text.RegularExpressions;
string txt = "123 456";
Match match = Regex.Match(txt, @"(\d+) (\d+)");
Console.WriteLine(match.Groups[0].Value);
Console.WriteLine(match.Groups[1].Value);
Console.WriteLine(match.Groups[2].Value);
Console.WriteLine(match.Groups.Count);
Свойство Groups.Count считает и нулевую
группу с полным совпадением. Для двух пар скобок
оно равно 3, сами фрагменты из скобок
начинаются с индекса 1.
Дана строка, содержащая домен:
string txt = "sss domain.ru zzz";
Выделите имя и зону домена в группы.
Дана строка, содержащая дату:
string txt = "31.12.2025";
Выделите день, месяц и год даты в группы.