正则表达式没有返回预期的匹配

时间:2017-06-26 15:43:57

标签: javascript jquery regex replace

我正在尝试使用正则表达式替换括号内的所有内容,但我似乎得到了意外的匹配。

这是我试图匹配的文字:

Foo (bar)

这是正则表达式:

/(?=\().*(?=\))/

我希望它能够返回括号之间的所有内容:即.*bar。但是它返回带有文本的第一个括号:(bar

那不应该发生,对吧?由于第一个括号处于正向前瞻(?=...) ...

请告诉我哪里出错......

2 个答案:

答案 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