ホームページ > Java > &#&チュートリアル > Java で Unicode 対応の正規表現を作成するにはどうすればよいですか?

Java で Unicode 対応の正規表現を作成するにはどうすればよいですか?

Barbara Streisand
リリース: 2024-12-26 03:41:08
オリジナル
178 人が閲覧しました

How Can I Create Unicode-Aware Regular Expressions in Java?

Java 正規表現の w および b に相当する Unicode の説明

Java の正規表現実装では、「任意の文字」を表す w 文字クラスの省略表現は使用されません、数字、または接続句読点」は他の実装と同様です。これにより、Unicode 単語の一致がより困難になります。この問題は b 単語区切り文字にも及び、これも Java で一貫性のない動作を示します。

Unicode 対応の同等物

これらの問題を解決するには、正規表現パターンを書き直すことができます。次の置換を使用します:

  • w: [pLpMp{Nd}p{Nl}p{Pc}[p{InEnclosedAlphanumerics}&&p{So}]]
  • b: (?:(?<=[pLpMp{Nd}p{Nl}p{Pc}[p{InEnclosedAlphanumerics}&&p{So}]])(?![pLpMp{Nd}p{Nl}p{Pc}[ p{InEnclosedAlphanumerics}&&p{So}]])|(?

その他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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート