我知道我今天早些时候刚刚问过一个类似的问题,但是看到它似乎很容易解决,这让我想到了一些更复杂的事情是可以实现的!我的括号中带有“区域”的字符串。我想将所有字符串与例如Japan
或Brazil
匹配,但如果它们包含例如USA
,Europe
或UK
,则不匹配。因为它们都以(
或空格开头,然后以,
或)
开头,所以非常棘手!
此刻,我必须进行两次单独的匹配才能匹配Japan
或Brazil
,然后确保我没有匹配USA
,Europe
或{ {1}}。
输入:
UK
我正在使用的正则表达式:
MatchMe! (Japan)
MatchMe! (Japan, Brazil)
MatchMe! (Brazil, Japan)
MatchMe! (Other, Japan, Other)
Don'tMatchMe! (Japan, USA)
Don'tMatchMe! (USA, Japan)
Don'tMatchMe! (Brazil, USA, Japan)
Don'tMatchMe! (USA)
演示:
答案 0 :(得分:2)
将非括号字符的正向正向组合起来,后跟Japan|Brazil
,对于负号则组合为反向正向,但是用USA|Europe|UK
代替:
\((?=[^)]*(Japan|Brazil))(?![^)]*(USA|Europe|UK))[^)]+\)