Javascript 正则表达式与 Perl 正则表达式的比较 [英] Javascript regex compared to Perl regex
问题描述
说到正则表达式,我只是个菜鸟.我知道 Perl 在 regexp 方面很棒,但我对 Perl 了解不多.最近开始学习 JavaScript 并遇到了正则表达式验证用户输入......很少使用它们.
I'm just a noob when it comes to regexp. I know Perl is amazing with regexp and I don't know much Perl. Recently started learning JavaScript and came across regex for validating user inputs... haven't used them much.
JavaScript regexp 与 Perl regexp 相比如何?异同?
所有用 JS 编写的正则表达式都可以在 Perl 中使用,反之亦然吗?
类似的语法?
How does JavaScript regexp compare with Perl regexp? Similarities and differences?
Can all regexp(s) written in JS be used in Perl and vice-versa?
Similar syntax?
推荐答案
从 ECMAScript 2018 开始,许多 JavaScript 的正则表达式缺陷已得到修复.
From ECMAScript 2018 onwards, many of JavaScript's regex deficiencies have been fixed.
- 它现在支持lookbehind 断言,甚至是无界断言.
- Unicode 属性转义已添加.
- 终于有一个DOTALL (
/s
) 标志.
还缺少什么:
- JavaScript 没有办法通过使匹配成为最终来防止回溯(使用所有格量词
++
/*+
/?+
或原子组(?>...)
). - 不支持递归/平衡子组匹配.
- 另外一个(装饰性的)事情是 JavaScript 不知道冗长的正则表达式,这可能会使它们更难阅读.
除此之外,两种风格的基本正则表达式语法非常相似.
Other than that, the basic regex syntax is very similar in both flavors.
这篇关于Javascript 正则表达式与 Perl 正则表达式的比较的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!