文字列内の無効な文字をブロックする正規表現がありますが、漢字もブロックしているので、必要ありません。手伝ってください。以下は私が使用している正規表現文字列です。
String re = "[^\\x09\\x0A\\x0D\\x20-\\xD7FF\\xE000-\\xFFFD\\x10000-x10FFFF]";
期待してくれてありがとう!
Java 7以降、 Unicodeプロパティ/スクリプトを利用できます。
たとえば、プロパティを使用して\p{L}
、任意の言語の文字と一致させることができます。または、\p{IsHiragana}
ひらがなに含まれる文字に一致するスクリプト。どのスクリプトがニーズに合っているかを確認する必要があります。
正規表現とUnicodeの詳細については、docs.Oracle.comを参照してください。
反対に一致することも可能です。たとえば、文字\P{L}
ではない\p{L}
すべての文字を一致させるか、文字を定義する範囲の代わりに、否定された文字クラスに追加するだけです。