为什么我的正则表达式可以在PHP中工作,但不能在JavaScript中工作?

Fizzix

我自己创建了一个正则表达式,当前正在PHP中运行。尽管当我将其合并到JavaScript时,它还是无法正常工作。我也曾在Python中尝试过,而且效果很好。

正则表达式:

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

用PHP测试并正常工作

用JavaScript测试,无法正常工作

下山羊

JavaScript不会自动转义您的]

这将帮助您获得直观的想法:

PCRE:

聚四氟乙烯

JS:

JS

蟒蛇:

蟒蛇

因此,要解决此问题,您需要转义括号

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

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

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

这就是为什么最好的方法是逃避这些东西,而不是依赖于味道的怪癖。

我通过regex101生成了这些图像

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

为什么正则表达式可以在javascript中工作,但不能在ruby中工作?

为什么我的正则表达式不能在c ++中工作,但可以在Python中工作?

正则表达式可以在Pythex上正常工作,但不能在Python中工作

为什么此正则表达式在Vim中不能在SublimeText中工作?

为什么正则表达式不能在Pywinauto中很好地工作

为什么此正则表达式不能在Java中按预期工作?

正则表达式虽然在Javascript中工作,但不能在C#中工作

正则表达式可以在PHP中运行,而不能在Erlang中使用。为什么?

正则表达式可以工作,但是不能在Python中工作吗?

为什么我的正则表达式不能在C#中工作,而在其他文本编辑器中工作?

用多个通配符替换正则表达式可在PHP中工作,而不能在JavaScript中工作

为什么我的正则表达式可以在RegexPlanet和regex101上运行,但不能在我的代码中运行?

正则表达式可在python模拟器中工作,但不能在perl中工作

正则表达式可在浏览器中工作,但不能在NodeJ中工作

正则表达式搜索可在Notepad ++中工作,但不能在cygwin grep中工作

为什么带有捕获组的此正则表达式不能在bash中工作?

为什么角度模式正则表达式不能在typecrip中正常工作在html中

模块重新正则表达式可以在控制台窗口中按预期工作,但不能在“ eclipse”中工作

简单的正则表达式/:[az] + /不能在javascript中按预期工作

正则表达式可以在所有.net引擎中在线工作,而不能在Powershell中工作吗?

为什么我不能在命令行的@ARGV中传递正则表达式?

为什么此正则表达式不能在我的Nifi工作流程中使用?

为什么此正则表达式在grep中起作用但不能在sed中起作用?

为什么htaccess中的此正则表达式不能正常工作?

正则表达式为什么不能在PreviewKeyDown上工作?

正则表达式可在Shell中工作,但不能通过Perl脚本工作

为什么正则表达式不能正常工作?

为什么jQuery hover可以在jsfiddle中工作,但不能在我的html布局中工作?

为什么我在 php 中工作的正则表达式在为 .net 编码时有编码问题?