Javascript正则表达式与Perl正则表达式相比

时间:2010-10-16 17:34:21

标签: javascript regex perl

当谈到正则表达式时,我只是一个菜鸟。我知道Perl在regexp上很棒,我不太了解Perl。最近开始学习JavaScript并且遇到了正则表达式 验证用户输入......没有太多使用它们。

JavaScript regexp与Perl regexp相比如何?异同?
是否可以在Perl中使用所有用JS编写的regexp,反之亦然? 类似的语法?

4 个答案:

答案 0 :(得分:26)

从ECMAScript 2018开始,许多JavaScript的正则表达式缺陷已得到修复。

还缺少什么:

  • JavaScript无法通过最终匹配(使用占有量词++ / *+ / ?+或原子组(?>...))来阻止回溯。
  • 不支持递归/平衡子组匹配。
  • 另一个(化妆品)的事情是JavaScript不知道冗长的正则表达式,这可能会使它们更难阅读。

除此之外,两种风格的基本正则表达式语法非常相似。

答案 1 :(得分:8)

comparison将回答您的所有疑问。

答案 2 :(得分:5)

另一个区别:在JavaScript中,没有s修饰符:点“。”将永远不会匹配换行符。作为“。”的替代,可以在JavaScript中使用字符类[\s\S],它将像Perl中的/./s一样工作。

答案 3 :(得分:0)

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

相关问题