2012-09-27 40 views
1

括號之前匹配我有這樣的:如何與前瞻

aaa(bbb) 

其中我匹配(bbb)使用這樣的:

\(.*?\) 

我現在想匹配aaa所以我嘗試了「積極的預測先行斷言」 。這不起作用。

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

我該如何匹配(之前的字母?

+1

有沒有一個原因,你不是簡單地使用'^ [^(] *'? –

回答

3

試試這個,

.*(?=\() 

使用RegexBuddy截圖

enter image description here

0

爲什麼不簡單地匹配/(aaa)(\(bbb\))/然後提及您的匹配$1$2

2

在我看來,你實際上並不需要向前看。你可以使用[^(]*匹配一切之前的第一(

^([^(]*) 

要獲得和()的內容,添加您exsiting (.*?)捕獲組。

^([^(]*)\((.*?)\) 
0
(\(.*?\))(?=\() 
^^ ^^ 

這些執行 「AAA」,以用括號括起來(其中後殼走過了開幕托架)。你似乎想要

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