正規表現-特定の文字を含まない


274

文のどこかに<も>もない場合、一致する正規表現が必要です。

文字列に<または>が含まれている場合は、falseを返す必要があります。

私はこれで部分的に成功しましたが、私の<>が最初または最後にある場合のみです:

(?!<|>).*$

違いがある場合は、.Netを使用しています。

助けてくれてありがとう。

回答:


436
^[^<>]+$

文字クラスのキャレット([^)は、何にでも一致することを意味します。つまり、これは、文字列の先頭、次に<and 以外の1つ以上の文字、そして文字列>の末尾を意味します。


3
最初のキャレットはどういう意味ですか?これは、それらの文字を含まないものを意味するのではないでしょうか?したがって、それらの文字を含む文字列のみを意味しますか?
RobKohr、2015年

11
最初のキャレットは、文字列の始まりを意味します。ドルは、文字列の終わりを意味します。
Ned Batchelder、2015年

2
@PhilipRego特殊文字には注意してください。シェルはそれらの一部を解釈します。ディレクトリに '] + $'という名前のファイルがあるかどうかを確認します。正規表現全体を一重引用符で囲み、機能させます。
Ned Batchelder 2017

正解です。+と最初のキャレットがある理由の説明を追加できますか?
Dr_Zaszuś

1
@Dr_Zaszuś「+」は「1つ以上」を意味し、「^」は「文字列の先頭」を意味します。
Ned Batchelder

59

どうぞ:

^[^<>]*$

これは<、何もない文字列をテストします>

<and が含まれている可能性があるが、>他にも必要な文字列をテストする場合は、

[^<>] (or ^.*[^<>].*$)

どこ[<>]の手段のいずれ<>[^<>]な手段ではないという任意の<>

そしてもちろん、必須リンク

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.