> Java > java지도 시간 > 전체 유니코드 호환성을 위해 Java의 \w, \b 및 기타 정규식 단축키를 어떻게 다시 작성할 수 있습니까?

전체 유니코드 호환성을 위해 Java의 \w, \b 및 기타 정규식 단축키를 어떻게 다시 작성할 수 있습니까?

Mary-Kate Olsen
풀어 주다: 2024-12-16 19:06:16
원래의
598명이 탐색했습니다.

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

유니코드 호환성을 위해 Java Regexes에서 w 및 b 다시 작성

Java의 w 및 b 정규식 단축키는 유니코드 지원이 제한되어 있습니다. 이 문제를 해결하려면 다음 유니코드 인식 정의를 사용하여 이러한 바로가기를 다시 작성할 수 있습니다.

\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}]]))
로그인 후 복사

기타 유니코드 인식 정규식 바로가기:


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

위 내용은 전체 유니코드 호환성을 위해 Java의 \w, \b 및 기타 정규식 단축키를 어떻게 다시 작성할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천: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*)