この正規表現の意味
[^ 0-9 ^ AZ]
??
数字と一致せず、大文字と一致しませんか?
正しい正規表現:[^0-9A-Z]+
2番目^
は必要ありませ+
ん。あなたがいなければ、このタイプの1つの文字に一致するだけです。
0-9
これはと同じであることに注意してください\d
。これに最適な正規表現は次のようになります。[^A-Z\d]+
キャレット^
が括弧で囲まれたグループの先頭にある場合、「次の項目以外を検索する」ことを意味します。ただし、それ以外の場所に配置されている場合は、「他のアイテムと一緒にキャレットを見つける」ことを意味します。あなたのものには両方があります。つまり、「次の項目 (キャレット記号を含む) 以外のものを見つける」という意味です。
つまり[^A-Z0-9]
、「大文字または数字以外の任意の文字を見つける」という意味です
あなたの正規表現は[^0-9^A-Z]
、「大文字、数字、またはキャレット記号以外の文字を見つける」という意味です。
他の人が指摘しているように、おそらく最初のバージョンを意味していたのでしょうが、2 つの違いに注意することが重要だと思いました。
現状では、数字、大文字、サーカムフレックスを除く任意の 1 文字に一致します。
先頭のサーカムフレックス ( ^
) は、文字セットを否定します。左角かっこの直後に続くサーカムフレックスは、文字セット自体の一部として解釈されます。の正規表現は[^^]
、曲折アクセント記号を除くすべての文字に一致します。