我試圖用正則表達式替換括號內的所有東西,但我似乎正在得到一個意想不到的匹配。正則表達式不返回預期的匹配
這裏是我想匹配的文本:
Foo (bar)
這裏的正則表達式:
/(?=\().*(?=\))/
我期待它的括號內返回的一切:即.*
或bar
。但是,它返回第一個括號與文本:(bar
。
這不應該發生,對吧?由於第一支架處於正前瞻(?=...)
...
請告訴我,我要去哪裏錯了...
我試圖用正則表達式替換括號內的所有東西,但我似乎正在得到一個意想不到的匹配。正則表達式不返回預期的匹配
這裏是我想匹配的文本:
Foo (bar)
這裏的正則表達式:
/(?=\().*(?=\))/
我期待它的括號內返回的一切:即.*
或bar
。但是,它返回第一個括號與文本:(bar
。
這不應該發生,對吧?由於第一支架處於正前瞻(?=...)
...
請告訴我,我要去哪裏錯了...
感謝brittenb我不得不改變我先行成回顧後。
所以我的正則表達式成了
/(?<=\().*(?=\))/
Javascript不允許向後看。當我在控制檯中嘗試解決方案時,我得到'無效的正則表達式'。 –
似乎很適合我... –
/\([^\)]+\)/
從字符串Foo (bar)
這個表達式將返回文本(bar)
擊穿:
/ #delimiter
\( #begins with a open-parenthesis
[^\)]+ #all content that is not a close-parenthesis
\) #ends with a close-parenthesis
/#end delimiter
我認爲你需要改變你的'(?= \()'到'(?<= \() 「讓它看起來在後面,而不是向前看。 – brittenb