ホームページ > Java > &#&チュートリアル > Java の \w、\b、およびその他の正規表現ショートカットを Unicode との完全な互換性のために書き直すにはどうすればよいですか?

Java の \w、\b、およびその他の正規表現ショートカットを Unicode との完全な互換性のために書き直すにはどうすればよいですか?

Mary-Kate Olsen
リリース: 2024-12-16 19:06:16
オリジナル
590 人が閲覧しました

How Can I Rewrite Java's w, b, and Other Regex Shortcuts for Full Unicode Compatibility?

Unicode 互換性のための Java 正規表現の w および b の書き換え

Java の w および b 正規表現ショートカットは、Unicode サポートに制限があります。これに対処するには、次の Unicode 対応定義を使用してこれらのショートカットを書き換えることができます:

\w (words) => [\pL\pM\p{Nd}\p{Nl}\p{Pc}[\p{InEnclosedAlphanumerics}&&\p{So}]]
\W (non-words) => [^\pL\pM\p{Nd}\p{Nl}\p{Pc}[\p{InEnclosedAlphanumerics}&&\p{So}]]

\b (word boundary) => (?:(?<=[\pL\pM\p{Nd}\p{Nl}\p{Pc}[\p{InEnclosedAlphanumerics}&amp;&amp;\p{So}]])(?![\pL\pM\p{Nd}\p{Nl}\p{Pc}[\p{InEnclosedAlphanumerics}&amp;&amp;\p{So}]])|(?<![\pL\pM\p{Nd}\p{Nl}\p{Pc}[\p{InEnclosedAlphanumerics}&amp;&amp;\p{So}]])(?=[\pL\pM\p{Nd}\p{Nl}\p{Pc}[\p{InEnclosedAlphanumerics}&amp;&amp;\p{So}]]))
\B (non-word boundary) => (?:(?<=[\pL\pM\p{Nd}\p{Nl}\p{Pc}[\p{InEnclosedAlphanumerics}&amp;&amp;\p{So}]])(?=[\pL\pM\p{Nd}\p{Nl}\p{Pc}[\p{InEnclosedAlphanumerics}&amp;&amp;\p{So}]])|(?<![\pL\pM\p{Nd}\p{Nl}\p{Pc}[\p{InEnclosedAlphanumerics}&amp;&amp;\p{So}]])(?![\pL\pM\p{Nd}\p{Nl}\p{Pc}[\p{InEnclosedAlphanumerics}&amp;&amp;\p{So}]]))
ログイン後にコピー

Other Unicode-Aware Regexpショートカット:


  1. u0009-u000Du0020u0085u00A0u1680u180Eu2000-u200Au2028u2029u202Fu205Fu3000
  2. u000A-u000Du0085u2028u2029
  3. u0009u0020u00A0u1680u180Eu2000u2001-u200Au202Fu205Fu3000

以上がJava の \w、\b、およびその他の正規表現ショートカットを Unicode との完全な互換性のために書き直すにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
Regexp ShortcutUnicode-Aware Definition
s (whitespace)[u0009-u000Du0020u0085u00A0u1680u180Eu2000-u200Au2028u2029u202Fu205Fu3000]
S (non-whitespace)1
v (vertical whitespace)[u000A-u000Du0085u2028u2029]
V (non-vertical whitespace)2
h (horizontal whitespace)[u0009u0020u00A0u1680u180Eu2000-u200Au202Fu205Fu3000]
H (non-horizontal whitespace)3
d (digits)p{Nd}
D (non-digits)P{Nd}
R (line break)(?:(?>u000Du000A)[u000Au000Bu000Cu000Du0085u2028u2029])
X (extended grapheme cluster) (?>PMpM*)