【问题标题】:Convert c# regex to javascript regex将 c# 正则表达式转换为 javascript 正则表达式
【发布时间】:2011-10-02 16:47:18
【问题描述】:

使用 C# reg ex 可以使用以下正则表达式:

^(?<survey>#_surveyForm.+)|#(?:(?<url>http.+\.\w{3,4}).+_surveyForm=\w+)$

匹配字符串如:

#http://localhost/tableaux-p145717.htm=&_surveyForm=second

或

#_surveyForm=second

我使用命名捕获组。

我知道 Javascript 没有利用命名捕获组(而是使用 \1、\2 等)。此外语法与上面的略有不同。

我怎样才能使 reg ex 符合 javascript 标准?

提前致谢,

R.

【问题讨论】:

    标签: c# javascript regex


    【解决方案1】:

    如您所说,JavaScript 不支持命名捕获。您必须将它们更改为“正常”捕获组,并按编号而不是按名称引用它们:

    /^(#_surveyForm.+)|#(?:(http.+\.\w{3,4}).+_surveyForm=\w+)$/
    

    您还应该知道\w 仅匹配 JavaScript 中的 ASCII 字母数字,而它匹配 .NET 中的 Unicode alnums。

    【讨论】:

      【解决方案2】:

      你可以使用类似的东西:

      /^#(http.+.\w{3,4}.+)?_surveyForm=(\w+)$/
      

      您的 URL 将在第一个捕获组中,调查在第二个中。

      这个表达式可能更适合你:

      /^#(https?:\/\/\S*)?\b_surveyForm=(\w+)$/
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2023-03-09
        • 2016-09-13
        • 1970-01-01
        • 2019-05-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多