输入字符串示例:
(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