组名无效:组名必须以单词字符开头

Posted

技术标签:

【中文标题】组名无效:组名必须以单词字符开头【英文标题】:Invalid group name: Group names must begin with a word character 【发布时间】:2010-09-12 11:37:38 【问题描述】:

我在使用带有正则表达式的 Regex 类时收到以下异常:(?'named a'asdf)

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

我的正则表达式有什么问题?

【问题讨论】:

【参考方案1】:

问题是捕获名称中的空格。删除空间,它工作正常。

来自 MSDN 文档: "用于名称的字符串不能包含任何标点符号,也不能以数字开头。您可以使用单引号代替尖括号;例如,(?'name')。"

使用尖括号或单引号''来表示组名都没有关系。

【讨论】:

【参考方案2】:

vengafoo 提到的 MSDN 文档的参考在这里: Regular Expression Grouping Constructs

(?<name> subexpression) 将匹配的子表达式捕获为组名或号码名。使用的字符串 for name 不能包含任何标点符号并且不能以 a 开头 数字。 可以使用单引号代替尖括号;例如,(?'name')。

【讨论】:

【参考方案3】:

问题是您在命名捕获组名称周围的引号。试试这个字符串:(?asdf)

【讨论】:

以上是关于组名无效:组名必须以单词字符开头的主要内容,如果未能解决你的问题,请参考以下文章

SQL查询以获取具有组名的客户列表

Notepad ++:替换所有以*开头的单词

如何从已知联系人获取组名

ASP .Net C# 代码向多个用户发送邮件,这些用户的邮件 ID 应隐藏在组名中

如果整数以前导零开头,为啥 JSON 无效?

选择 current_user 的组名