or
繰り返しを許可せずに演算子を使用するにはどうすればよいですか?言い換えれば、正規表現:
(word1|word2|word3)+
一致 しますが、word1という単語が繰り返されているため、私がそれを望まないものにword1word2
も一致します。word1word1
どうすれば繰り返しを避けることができますか?
要約すると、私は次の主題を一致させたいと思います:
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で何かがキャプチャされたかどうかを確認することに興味があるからです。