web-dev-qa-db-ja.com

正規表現を使用した文字列否定

正規表現で文字列否定を行うことは可能ですか?文字列".."を含まないすべての文字列を一致させる必要があります。 ^[^\.]*$を使用して"."を含まないすべての文字列と一致できることは知っていますが、複数の文字と一致する必要があります。私は単純に".."を含む文字列と一致し、一致の戻り値を否定して同じ結果を得ることができることを知っていますが、それが可能かどうか疑問に思いました。

34
Paul Bevis

負の先読みを使用できます。

^(?!.*\.\.).*$

文字列内のどこかに2つのピリオドのシーケンスが見つかった場合、式は一致しません。

42
chaos
^(?:(?!\.\.).)*$

文字列のどこにも2つの連続したドットがない場合にのみ一致します。

5
Tim Pietzcker