2012-09-27 45 views
1

括号之前匹配我有这样的:如何与前瞻

aaa(bbb) 

其中我匹配(bbb)使用这样的:

\(.*?\) 

我现在想匹配aaa所以我尝试了“积极的预测先行断言” 。这不起作用。

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

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

+1

有没有一个原因,你不是简单地使用'^ [^(] *'? –

回答

3

试试这个,

.*(?=\() 

使用RegexBuddy截图

enter image description here

0

为什么不简单地匹配/(aaa)(\(bbb\))/然后提及您的匹配$1$2

2

在我看来,你实际上并不需要向前看。你可以使用[^(]*匹配一切之前的第一(

^([^(]*) 

要获得和()的内容,添加您exsiting (.*?)捕获组。

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

这些执行 “AAA”,以用括号括起来(其中后壳走过了开幕托架)。你似乎想要

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