PCRE和Python正则表达式在javascript中不起作用

PCRE和Python正则表达式在javascript中不起作用,javascript,regex,Javascript,Regex,这个正则表达式,/\[([^]+)\]\[(((((((?:https?| ftp):\/\/)?.*?)/gm,在和中运行良好,但在中并不是很好 为什么不呢?如何修复它?转义]内部[…]将使其在Javascript中工作: \[([^\]]+)\]\((((?:https?|ftp):\/\/)?.*?)\) ^^ 有趣的是,Javascript只是更挑剔,还是设计者选择逃避的原因?@Justin808,我不知道背后的原因。一些正则表达式引擎足够聪明来处理这个问题,而另一些则不然。

这个正则表达式,
/\[([^]+)\]\[(((((((?:https?| ftp):\/\/)?.*?)/gm
,在和中运行良好,但在中并不是很好


为什么不呢?如何修复它?

转义
]
内部
[…]
将使其在Javascript中工作:

\[([^\]]+)\]\((((?:https?|ftp):\/\/)?.*?)\)
     ^^

有趣的是,Javascript只是更挑剔,还是设计者选择逃避的原因?@Justin808,我不知道背后的原因。一些正则表达式引擎足够聪明来处理这个问题,而另一些则不然。再举一个例子:一些正则表达式抱怨
{abc}
,其他正则表达式则不抱怨,只是逐字匹配
{abc}