我有这个:
aaa(bbb)
我(bbb)
使用这个匹配:
\(.*?\)
我现在希望匹配aaa
,所以我尝试了“积极的前瞻断言”。这不起作用。
(\(.*?\))(?=\()
我怎样才能匹配前面的字母(
?
我有这个:
aaa(bbb)
我(bbb)
使用这个匹配:
\(.*?\)
我现在希望匹配aaa
,所以我尝试了“积极的前瞻断言”。这不起作用。
(\(.*?\))(?=\()
我怎样才能匹配前面的字母(
?
试试这个,
.*(?=\()
正则表达式好友截图
在我看来,您实际上并不需要前瞻。您可以只使用[^(]*
匹配第一个之前的所有内容(
^([^(]*)
要获得它和 的内容()
,请添加您现有的(.*?)
捕获组。
^([^(]*)\((.*?)\)
为什么不简单地匹配/(aaa)(\(bbb\))/
,然后用$1
and引用你的匹配项$2
?
(\(.*?\))(?=\()
^^ ^^
这些强制将“aaa”括在括号中(shell 后面是一个左括号)。你似乎想要
/(.+?)(?=\(.*?\))/