Есть ли способ получить имя захваченной группы на C #?
string line = "No.123456789 04/09/2009 999";
Regex regex = new Regex(@"(?<number>[\d]{9}) (?<date>[\d]{2}/[\d]{2}/[\d]{4}) (?<code>.*)");
GroupCollection groups = regex.Match(line).Groups;
foreach (Group group in groups)
{
Console.WriteLine("Group: {0}, Value: {1}", ???, group.Value);
}
Я хочу получить такой результат:
Группа: [Не знаю, что здесь делать], Значение: 123456789 04.09.2009 999 Группа: число, Значение: 123456789 Группа: дата, Значение: 09.04.2009 Группа: code, Значение: 999
Самый простой способ сделать это - использовать этот метод расширения:
Как только этот метод расширения будет установлен, вы можете получить такие имена и значения:
источник
Начиная с .NET 4.7
Group.Name
свойство доступно .источник
Вы должны использовать,
GetGroupNames();
и код будет выглядеть примерно так:источник
Класс Regex - ключ к этому!
http://msdn.microsoft.com/en-us/library/system.text.regularexpressions.regex.groupnamefromnumber.aspx
источник
group.Index
это позиция начала группы совпадений в исходном тексте. Не «индекс» группы в регулярном выражении.