Неверное имя группы: имена групп должны начинаться со слова - PullRequest
3 голосов
/ 23 сентября 2008

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

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

В чем проблема с моим регулярным выражением?

Ответы [ 3 ]

6 голосов
/ 23 сентября 2008

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

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

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

4 голосов
/ 28 сентября 2008

Ссылка на документацию MSDN, упомянутую vengafoo, здесь: Конструкции группировки регулярных выражений

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

0 голосов
/ 23 сентября 2008

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...