pqr
をregexを使用して文字列から除外します。私は現在持っている何正規表現否定の先読みを使用して正確な文字列を除外します
は、これは正しくabc/pqr/xyz
拒否
abc\/(?!.*pqr).*\/xyz
ですが、それはまた、私はそれを一致させたいabc/pqrst/xyz
を拒否します。
は、完全な単語の場合にのみ除外し、それがpqrst
などの長い単語の部分文字列でない場合は除外します。
pqr
をregexを使用して文字列から除外します。私は現在持っている何正規表現否定の先読みを使用して正確な文字列を除外します
は、これは正しくabc/pqr/xyz
拒否
abc\/(?!.*pqr).*\/xyz
ですが、それはまた、私はそれを一致させたいabc/pqrst/xyz
を拒否します。
は、完全な単語の場合にのみ除外し、それがpqrst
などの長い単語の部分文字列でない場合は除外します。
あなたは先読みの内側にあることpqr
でword boundariesを使用することがあります。
abc\/(?!.*\bpqr\b).*\/xyz
^^ ^^
はregex demoを参照してください。単語境界を使用しない場合は、pqr
は正規表現に失敗し、単語境界を追加すると、一致するものだけが失敗し、pqr
が全体の単語として表示されます。
代替は、特定のコンテキストでpqr
を一致させることです。
abc\/(?!(?:.*\/)?pqr\/).*\/xyz
another demoを参照してください。ここでは、(?!(?:.*\/)?pqr\/)
は、abc/
の後に一致するか、またはabc
の後に0+最後の/
までの任意の文字と、その後に別の/
の後にのみ一致します。他のすべての状況では、あなたは一致します。
注:同じアプローチがxyz
に適用されなければならない、それは全体の単語xyz
に一致するようにした後、(あなたが\b
を追加することが
注2:abc\/(?!(?:(?!\/xyz).)*\bpqr\b).*\/xyz
を使用し、xyz
の前に表示されるようにpqr
を必要とするように
A。また
abc\/(?!.*pqr\/).*\/xyz
:簡単なチェックはちょうどあなたがその時点でpqr/
を持っていないことを確認することです(?!.*
の.*
は、あなたがabc/defpqr/xyz
を受け入れることを止めることに注意してください。あなたはそれがあなたが望むものだと確信していますか?
全単語 'pqr'? '\ b'を前後に追加してください。 'abc \ /(?!。* \ bpqr \ b)。* \/xyz'。 https://regex101.com/r/HjJBBH/1 –
ありがとうウィクショーを参照してください。今働いています:) –
[Regex - 単一単語を除外する方法の可能な複製?](http://stackoverflow.com/questions/7820930/regex-how-to-exclude-single-word) – revo