Неверное имя группы: Имя группы должно начинаться с символа слова


3

я получил следующее исключение, когда я использую класс Regex с регулярным выражением: (? 'С именем a'asdf)

System.ArgumentException: parsing \"(?'named a'asdf)\" - Invalid group name: Group names must begin with a word character. 

Что такое проблема с моим регулярным выражением?

6

Проблема в пространстве во имя захвата. Удалите пространство, и он отлично работает.

Из документации MSDN: «Строка, используемая для имени, не должна содержать никаких знаков препинания и не может начинаться с числа. Вы можете использовать одинарные кавычки вместо угловых скобок, например (? 'Name')."

Не имеет значения, если вы используете угловые скобки <> или одинарные кавычки '' для указания имени группы.


-1

Проблема заключается в ваших цитатах вокруг имени названной группы захвата. Попробуйте строку: (? <Named> asdf)


4

Ссылка для документации MSDN, упомянутой vengafoo здесь: Regular Expression Grouping Constructs

(?<name> subexpression)
Захватывает совпадающее подвыражение в имя группы или имя номера. Строка, используемая для имени, не должна содержать знаков препинания и не может начинаться с номера . Вы можете использовать одинарные кавычки вместо угловых скобок; например, (? 'name').