유니코드 호환성을 위해 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}&&\p{So}]])(?![\pL\pM\p{Nd}\p{Nl}\p{Pc}[\p{InEnclosedAlphanumerics}&&\p{So}]])|(?<![\pL\pM\p{Nd}\p{Nl}\p{Pc}[\p{InEnclosedAlphanumerics}&&\p{So}]])(?=[\pL\pM\p{Nd}\p{Nl}\p{Pc}[\p{InEnclosedAlphanumerics}&&\p{So}]])) \B (non-word boundary) => (?:(?<=[\pL\pM\p{Nd}\p{Nl}\p{Pc}[\p{InEnclosedAlphanumerics}&&\p{So}]])(?=[\pL\pM\p{Nd}\p{Nl}\p{Pc}[\p{InEnclosedAlphanumerics}&&\p{So}]])|(?<![\pL\pM\p{Nd}\p{Nl}\p{Pc}[\p{InEnclosedAlphanumerics}&&\p{So}]])(?![\pL\pM\p{Nd}\p{Nl}\p{Pc}[\p{InEnclosedAlphanumerics}&&\p{So}]]))
기타 유니코드 인식 정규식 바로가기:
Regexp Shortcut | Unicode-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*) |