为什么我的正则表达式在PHP中工作但不是JavaScript?

前端之家收集整理的这篇文章主要介绍了为什么我的正则表达式在PHP中工作但不是JavaScript?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个自己创建的正则表达式,我正在PHP中运行.虽然当我将它合并到JavaScript时,它拒绝工作.我也在Python中尝试过,它的工作完全正常.

正则表达式:

@[[](.[^]]+)[]][()](\d+)[)]

Testing in PHP,and working

Testing in JavaScript,and not working

JavaScript不会自动退出你的].

这将有助于您获得视觉观念:

PCRE:

JS:

蟒蛇:

所以要解决这个问题,你需要摆脱括号

@[[](.[^\]]+)[\]][()](\d+)[)]
//      ^     ^

编写这个正则表达式的最好方法是最小化字符类的使用:

@\[(.[^\]]+)\][()](\d+)\)

这就是为避免这种东西而不是依靠怪癖的好习惯.

我通过regex101生成了这些图像.

猜你在找的正则表达式相关文章