Javascript 正则表达式未返回预期匹配
我试图用正则表达式替换括号内的所有内容,但我似乎得到了一个意想不到的匹配 以下是我试图匹配的文本:Javascript 正则表达式未返回预期匹配,javascript,jquery,regex,replace,Javascript,Jquery,Regex,Replace,我试图用正则表达式替换括号内的所有内容,但我似乎得到了一个意想不到的匹配 以下是我试图匹配的文本: Foo (bar) 这是正则表达式: /(?=\().*(?=\))/ 我希望它能返回括号中的所有内容:即*或条。但是,它返回第一个括号,其中包含以下文本:(bar) 这不应该发生,对吗?因为第一个括号处于正向前瞻(?=…) 请告诉我哪里出了问题…多亏了布里滕,我不得不将“向前看”改为“向后看” 所以我的正则表达式变成了 /(?<=\().*(?=\))/ /(?/\([^\)]+\)
Foo (bar)
这是正则表达式:
/(?=\().*(?=\))/
我希望它能返回括号中的所有内容:即*
或条
。但是,它返回第一个括号,其中包含以下文本:(bar
)
这不应该发生,对吗?因为第一个括号处于正向前瞻(?=…)
请告诉我哪里出了问题…多亏了布里滕,我不得不将“向前看”改为“向后看” 所以我的正则表达式变成了
/(?<=\().*(?=\))/
/(?/\([^\)]+\)/
从字符串Foo(bar)
中,此正则表达式将返回文本(bar)
细分:
/ #delimiter
\( #begins with a open-parenthesis
[^\)]+ #all content that is not a close-parenthesis
\) #ends with a close-parenthesis
/ #end delimiter
我认为您需要将(?=\()
的第一个实例更改为(?Javascript不允许lookbehind。当我在控制台中尝试该解决方案时,我得到了无效的正则表达式
。似乎对我来说很好。。。