1

我有这个:

aaa(bbb)

(bbb)使用这个匹配:

\(.*?\)

我现在希望匹配aaa,所以我尝试了“积极的前瞻断言”。这不起作用。

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

我怎样才能匹配前面的字母(

4

4 回答 4

3

试试这个,

   .*(?=\()

正则表达式好友截图

在此处输入图像描述

于 2012-09-27T02:31:17.670 回答
2

在我看来,您实际上并不需要前瞻。您可以只使用[^(]*匹配第一个之前的所有内容(

^([^(]*)

要获得它和 的内容(),请添加您现有的(.*?)捕获组。

^([^(]*)\((.*?)\)
于 2012-09-27T02:30:46.937 回答
0

为什么不简单地匹配/(aaa)(\(bbb\))/,然后用$1and引用你的匹配项$2

于 2012-09-27T02:29:55.730 回答
0
(\(.*?\))(?=\()
 ^^  ^^

这些强制将“aaa”括在括号中(shell 后面是一个左括号)。你似乎想要

/(.+?)(?=\(.*?\))/
于 2012-09-27T02:35:09.223 回答