如何or
在不允许重复的情况下使用运算符?换句话说,正则表达式:
(word1|word2|word3)+
将匹配 word1word2
但也会匹配word1word1
我不想要的,因为单词 word1 正在重复。如何避免重复?
总之,我希望匹配以下主题:
word1word2word3
word1
word2
word3word2
请注意所有这些都匹配,因为没有重复。我希望以下科目失败:
word1word2word1
word2word2
word3word1word2word2
编辑
感谢@Mark ,我知道有:
(?xi)
(?:
(?<A>word1|word2)(?! .* \k<A> ) # match for word1 or word2 but make sure that if you capture it it does not follow what it was just captured
| (?<B>word3|word4)(?! .* \k<B> )
)+
因为我有兴趣查看是否在 A 组或 B 组中捕获了某些东西。