输入字符串示例:

(F1 (F2 X (Y) Z) (F3 A B)

我想匹配的是:
\w+
前面没有
(
的,除非后面还有
)

在这种情况下:
X
Y
Z
A
B

暂时的解决办法(我知道稍后会有问题)是
/\(\w+\)| \w+/
,但是由于它也匹配空白,它将在以后的道路上引起问题,特别是当它到达替换匹配的点时。
我做了一些关于消极注视的实验,形式如下:
/(?!=\()\w+/

……但我似乎找不到一种方法把它和“不受(……)支配”结合起来
只是想说清楚:
本例中的匹配项都是单字母,但实际数据可能是多个字符,甚至可能不是字母数字。
任何空格或括号都不能作为返回匹配的一部分。

最佳答案:

试试这个:

(?<=[ (])\w(?=[ )])

请看这里的实际操作:http://regexr.com?2vnri
实际上,这可能是你想要的:
(?<= )\w+(?=[ )])|(?<=\()\w+(?=\))

请看这里的实际操作:http://regexr.com?2vnro