Amien90 Ответов: 2

Регулярное выражение C# с 2 паттернами. Можно узнать, какой паттерн соответствует?


 Regex regex = new Regex(@"a|b");
Match match = regex.Match(line);
 if (match.Success)
{
}


Я хочу знать, совпадала ли линия на "А" или " Б " ... потому что, основываясь на этом результате, я хочу делать разные вещи

Что я уже пробовал:

моим лучшим решением было разбить само регулярное выражение

 if (match1.Success)
{
}
if (match2.Success)
{
}

2 Ответов

Рейтинг:
2

OriginalGriff

Другой альтернативой является использование групп: Ссылка на регулярное выражение: захват групп и обратных ссылок[^] Я бы использовал именованные группы, чтобы сделать это более очевидным:

(?<GroupA>a)|(?<GroupB>b)
Таким образом, вы можете проверить свойство Regex.Groups по имени и определить, какое из них соответствует.


Bryian Tan

Приятно!!!. У меня была та же идея, и я играл с этой концепцией.

Рейтинг:
2

Bryian Tan

Вот пример с использованием метода GetGroupNames, чтобы захватить название группы. Внизу вы можете написать оператор if, f matchedGroupName = = " abc " then ...

reg_multiple C# - rextester[^]