1. ホーム
  2. java

[解決済み] Java正規表現でUnicodeをサポートするか?

2023-05-20 19:11:23

質問

AからZにマッチさせるために、正規表現を使用します。

<ブロッククオート

[A-Za-z]

ユーザが入力したutf8文字に正規表現がマッチするようにするにはどうしたらよいですか?例えば、环保部のような中国語の単語

どのように解決するのですか?

探しているのは、Unicodeのプロパティです。

\p{L} は任意の言語の任意の種類の文字

ですから、このような中国語の単語をマッチさせる正規表現は次のようになります。

\p{L}+

このようなプロパティはたくさんありますが、詳しくは 正規表現.infoを参照してください。

もう一つの方法は、モディファイアを使うことです。

Pattern.UNICODE_CHARACTER_CLASS

Java 7 では、新しいプロパティ Pattern.UNICODE_CHARACTER_CLASS これは、定義済みの文字クラスの Unicode 版を有効にするものです。 いくつかの詳細とリンクについては、私の回答を参照してください。

次のようなことができます。

Pattern p = Pattern.compile("\\w+", Pattern.UNICODE_CHARACTER_CLASS);

\w は,あらゆる言語のすべての文字とすべての数字にマッチします(もちろん _ ).