我有这个:
aaa(bbb)
我使用此匹配(bbb)
:
\(.*?\)
我现在希望匹配aaa
,所以我尝试了一个'积极的先行断言'。这不起作用。
(\(.*?\))(?=\()
如何匹配(
之前的字母?
答案 0 :(得分:3)
尝试这个,
.*(?=\()
RegexBuddy ScreenShot
答案 1 :(得分:2)
在我看来,你实际上并不需要前瞻。您可以使用[^(]*
来匹配第一个(
^([^(]*)
要获取()
的内容和内容,请为您添加(.*?)
个抓取组。
^([^(]*)\((.*?)\)
答案 2 :(得分:0)
为什么不简单地匹配/(aaa)(\(bbb\))/
,然后引用与$1
和$2
的匹配?
答案 3 :(得分:0)
(\(.*?\))(?=\()
^^ ^^
这些强制将“aaa”括在括号中(在shell之后加上一个左括号)。你似乎想要
/(.+?)(?=\(.*?\))/