组名无效:组名必须以单词字符开头
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】:问题是您在命名捕获组名称周围的引号。试试这个字符串:(?
【讨论】:
以上是关于组名无效:组名必须以单词字符开头的主要内容,如果未能解决你的问题,请参考以下文章