非ラテン文字と一致させたかったのです。それを試してみました。私の理解によると、 if (a.matches("[\\x8A-\\xFF]+"))
trueを返す必要がありますが、falseです。
String a = "Ž";
if (a.matches("[\\x8A-\\xFF]+"))
{
}
あなたのタイトルから判断すると:
非ラテン文字を ASCII 0 ~ 31 および 128 ~ 255 と照合する正規表現
32 ~ 127 の範囲の文字を除くすべての文字のようですが、Ž が一致しないことに驚いています。
これが正しい場合は、式[^\x20-\x7F]
( 「範囲 32-127 を除くすべての文字」 ) を使用することをお勧めします。これはŽ に一致します。
(タイトルの正規表現を正確に翻訳すると次のようになります[\x00-\x1F\x80-\xFF]
が、以下で説明する Ž とは一致しません。)
最初の試みがうまくいかなかった理由:
\xNN
一致する文字のUnicode 値。Ž の Unicode 値は 0x017D です。つまり、範囲外です\x8A
- \xFF
。
"Ž" が 8E であると言う場合、拡張 ASCII テーブルからの値である可能性が高く、これらは Java 正規表現エンジンが処理する値ではありません。