我正在尝试使用正则表达式替换括号内的所有内容,但我似乎得到了意外的匹配。
这是我试图匹配的文字:
Foo (bar)
这是正则表达式:
/(?=\().*(?=\))/
我希望它能够返回括号之间的所有内容:即.*
或bar
。但是它返回带有文本的第一个括号:(bar
。
那不应该发生,对吧?由于第一个括号处于正向前瞻(?=...)
...
请告诉我哪里出错......
答案 0 :(得分:2)
感谢brittenb,我不得不把我的前瞻变成一个后视镜。
所以我的正则表达式成了
/(?<=\().*(?=\))/
答案 1 :(得分:0)
/\([^\)]+\)/
从字符串Foo (bar)
开始,此正则表达式将返回文本(bar)
故障:
/ #delimiter
\( #begins with a open-parenthesis
[^\)]+ #all content that is not a close-parenthesis
\) #ends with a close-parenthesis
/ #end delimiter