Java 正規表現の w および b に相当する Unicode の説明
Java の正規表現実装では、「任意の文字」を表す w 文字クラスの省略表現は使用されません、数字、または接続句読点」は他の実装と同様です。これにより、Unicode 単語の一致がより困難になります。この問題は b 単語区切り文字にも及び、これも Java で一貫性のない動作を示します。
Unicode 対応の同等物
これらの問題を解決するには、正規表現パターンを書き直すことができます。次の置換を使用します:
その他Unicode プロパティ
w と b に加えて、Java の正規表現には他のプロパティに対する Unicode 対応のサポートがありません。ただし、これらのプロパティは、以下に示すように、p 構文を使用して拡張できます。
Java Syntax | Unicode Property |
---|---|
p{Lower} | Unicode Lowercase |
p{Upper} | Unicode Uppercase |
p{ASCII} | ASCII |
p{Alpha} | Unicode Alphabetic |
p{Digit} | Unicode Digit |
p{Alnum} | Unicode Alphanumeric |
p{Punct} | Unicode Punctuation |
p{Graph} | Unicode Graph |
p{Print} | Unicode Printable |
p{Blank} | Unicode Blank |
p{Cntrl} | Unicode Control |
p{XDigit} | Unicode Hexadecimal Digit |
p{Space} | Unicode Space |
Unicode 対応正規表現
これらの Unicode 対応代替を組み込むことで、 Unicode データを正確に処理する正規表現パターンを作成できます。たとえば、次のパターンは Unicode の単語と一致します:
Pattern pattern = Pattern.compile("\w+"); // Unicode-aware \w equivalent
このパターンは、文字が ASCII か Unicode でエンコードされているかに関係なく、テキスト文字列内の単語と一致するために使用できます。
以上がJava で Unicode 対応の正規表現を作成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。