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

Javascript正则表达式与Perl正则表达式的比较

  •  35
  • Amitd  · 技术社区  · 15 年前

    正在验证用户输入。。。没怎么用过。

    JavaScript regexp与Perl regexp相比如何?相似与不同?
    用JS编写的所有regexp都可以用Perl编写吗?反之亦然?
    类似的语法?

    4 回复  |  直到 11 年前
        1
  •  28
  •   Tim Pietzcker    8 年前

    从ECMAScript 2018开始,JavaScript的许多regex缺陷已经修复。

    • JavaScript没有办法通过使匹配成为final来防止回溯(使用所有格量词 ++ / *+ / ?+ 或原子群 (?>...)
    • 不支持递归/平衡子组匹配。
    • 另一个(表面的)问题是JavaScript不知道冗长的regex,这可能会使它们更难阅读。

        2
  •  8
  •   Chris Povirk    8 年前

    这个 comparison 会回答你所有的问题。

        3
  •  5
  •   rplantiko    13 年前

    另一个区别是:在JavaScript中,没有 s 修饰语:点“.”永远不会与换行符匹配。作为“.”的替换,字符类 [\s\S] 可以在JavaScript中使用,其工作原理如下 /./s

        4
  •  0
  •   Bob Ray    8 年前

    我刚刚遇到一个实例,在某些版本的JavaScript中无法识别十进制数,您必须使用[0-9]。