【问题标题】: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.

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

【问题讨论】:

    标签: c# regex exception


    【解决方案1】:

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

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

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        【解决方案3】:

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

        【讨论】:

          猜你喜欢
          • 2015-08-03
          • 2016-02-23
          • 1970-01-01
          • 2019-06-29
          • 2020-12-31
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多