> Java > java지도 시간 > \w 및 \b 등가물을 사용하여 Java 정규식에서 유니코드 문자를 처리하는 방법은 무엇입니까?

\w 및 \b 등가물을 사용하여 Java 정규식에서 유니코드 문자를 처리하는 방법은 무엇입니까?

Mary-Kate Olsen
풀어 주다: 2024-12-11 08:42:10
원래의
257명이 탐색했습니다.

How to Handle Unicode Characters in Java Regular Expressions Using w and b Equivalents?

Java 정규식에서 w와 b에 해당하는 유니코드는 무엇입니까?

Java의 Perl 스타일 문자 클래스 단축키 구현(w, b, s) 등)은 ASCII 문자로 제한됩니다. 유니코드 문자를 정확하게 일치시키려면 이러한 단축키를 다시 작성하는 더 나은 방법이 필요합니다.

해결책:

사용자 정의 함수를 활용하여 다음 문자 클래스 이스케이프를 다시 작성하세요.

\w \W \s \S \v \V \h \H \d \D \b \B \X \R
로그인 후 복사

재작성 정의:

\s => [^\u0009-\u000D\u0020\u0085\u00A0\u1680\u180E\u2000-\u200A\u2028\u2029\u202F\u205F\u3000]
\S => [^\u0009-\u000D\u0020\u0085\u00A0\u1680\u180E\u2000-\u200A\u2028\u2029\u202F\u205F\u3000]

\v => [\u000A-\u000D\u0085\u2028\u2029]
\V => [^\u000A-\u000D\u0085\u2028\u2029]

\h => [\u0009\u0020\u00A0\u1680\u180E\u2000-\u200A\u202F\u205F\u3000]
\H => [^\u0009\u0020\u00A0\u1680\u180E\u2000\u2001-\u200A\u202F\u205F\u3000]

\w => [\pL\pM\p{Nd}\p{Nl}\p{Pc}[\p{InEnclosedAlphanumerics}&&\p{So}]]
\W => [^\pL\pM\p{Nd}\p{Nl}\p{Pc}[\p{InEnclosedAlphanumerics}&&\p{So}]]

\b => (?:(?<=[a-z0-9])(?![a-z0-9])|(?<![a-z0-9])(?=[a-z0-9]))
\B => (?:(?<=[a-z0-9])(?=[a-z0-9])|(?<![a-z0-9])(?![a-z0-9]))

\d => \p{Nd}
\D => \P{Nd}

\R => (?:(?>\u000D\u000A)|[\u000A\u000B\u000C\u000D\u0085\u2028\u2029])

\X => (?>\PM\pM*)
로그인 후 복사

경계 고려 사항:

Java의 b와 B는 w에만 바인딩되지 않습니다. A(?:AB|BC) 구성을 사용하여 다시 작성된 b는 다음과 같은 경계를 검색할 수 있습니다.

  • IF가 단어 ==> THEN은 단어 앞에 오지 않습니다
  • ELSIF는 단어 뒤에 오지 않습니다 ==> THEN은 단어 앞에 옵니다

A(?:BC|AB) 구성을 사용하여 다시 작성된 B는 다음과 같은 경우 경계가 없는 항목을 검색할 수 있습니다.

  • IF가 단어를 따릅니다 ==> THEN은 단어 앞에 옵니다
  • ELSIF는 단어 뒤에 오지 않습니다 ==> THEN은 단어 앞에 오지 않습니다

완전 재작성 기능:

위에서 언급한 전체 재작성 기능을 얻으려면 소스 코드를 가져오세요.

추가 기능:

  • 논리 코드 포인트의 유니코드 문자 입력
  • 자연어 단어, 대시, 하이픈 및 아포스트로피에 대한 편리한 정의
  • 정규식 확장 문자열 이스케이프의 이스케이프 및 이스케이프 해제

위 내용은 w 및 b 등가물을 사용하여 Java 정규식에서 유니코드 문자를 처리하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿