Я пытаюсь извлечь некоторые альфаномические выражения из более длинного слова в C#, используя регулярные выражения. Например, у меня есть слово «FooNo12Bee». Я использую следующее регулярный код выражения, которое возвращает мне два матча, «NO12» и «Нет» в качестве результатов:Weird Regex поведение в C#
alfaNumericWord = "FooNo12Bee";
Match m = Regex.Match(alfaNumericWord, @"(No|Num)\d{1,3}");
Если я использую следующее выражение, без paranthesis и без каких-либо альтернатив «Нет» это работает так, как я ожидал, он возвращает только «NO12»:
alfaNumericWord = "FooNo12Bee";
Match m = Regex.Match(alfaNumericWord, @"No\d{1,3}");
в чем разница между этими двумя выражениями, почему с использованием результатов paranthesis в резервируемой результат для «Нет»?
[Groups] (http://www.regular-expressions.info/brackets.html) - это не * излишней * вы явно попросили его записать его – CodingIntrigue