代码之家  ›  专栏  ›  技术社区  ›  user3239349

正则表达式替换由模式[duplicate]创建的字符串

  •  -3
  • user3239349  · 技术社区  · 6 年前

    当我使用正则表达式的正则表达式类时,收到以下异常:(?)命名为a'asdf)

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

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

    0 回复  |  直到 16 年前
        1
  •  6
  •   vengafoo    16 年前

    问题是捕获名称中的空格。把空间移走,它就可以正常工作了。

    从MSDN文档中: “用于名称的字符串不能包含任何标点符号,并且不能以数字开头。您可以使用单引号代替角括号;例如,(?)姓名“。”

    使用尖括号或单引号“”表示组名无关紧要。

        2
  •  4
  •   hurst    16 年前

    Vengafoo提到的MSDN文档参考如下: Regular Expression Grouping Constructs

    (?<name> subexpression)
    将匹配的子表达式捕获到组名或数字名中。使用的字符串 因为名称不能包含任何标点符号,并且不能以 号码。 您可以使用单引号代替角括号;例如,(?)姓名)。

        3
  •  -1
  •   Simon Johnson Andomar    16 年前

    问题是您在命名捕获组的名称周围加上引号。尝试字符串:(?<命名>asdf)