Heim > Java > javaLernprogramm > Wie behandelt man Unicode-Zeichen in regulären Java-Ausdrücken mithilfe von \w- und \b-Äquivalenten?

Wie behandelt man Unicode-Zeichen in regulären Java-Ausdrücken mithilfe von \w- und \b-Äquivalenten?

Mary-Kate Olsen
Freigeben: 2024-12-11 08:42:10
Original
257 Leute haben es durchsucht

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

Unicode-Äquivalente für w und b in regulären Java-Ausdrücken?

Java-Implementierung von Zeichenklassenverknüpfungen im Perl-Stil (w, b, s usw.) ist auf ASCII-Zeichen beschränkt. Um Unicode-Zeichen korrekt zuzuordnen, benötigen Sie eine bessere Möglichkeit, diese Verknüpfungen neu zu schreiben.

Lösung:

Verwenden Sie eine benutzerdefinierte Funktion, um die folgenden Zeichenklassen-Escapezeichen neu zu schreiben:

\w \W \s \S \v \V \h \H \d \D \b \B \X \R
Nach dem Login kopieren

Umgeschrieben Definitionen:

\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*)
Nach dem Login kopieren

Grenzüberlegungen:

Java's b und B sind nicht ausschließlich an w gebunden. Ein umgeschriebenes b unter Verwendung der A(?:AB|BC)-Konstruktion kann nach Grenzen suchen, bei denen:

  • IF folgt dem Wort ==> THEN steht nicht vor dem Wort
  • ELSIF folgt nicht dem Wort ==> THEN steht vor dem Wort

Ein umgeschriebenes B mit der A(?:BC|AB)-Konstruktion kann nach Nichtgrenzen suchen, wobei:

  • IF folgt dem Wort ==> THEN steht vor dem Wort
  • ELSIF folgt nicht dem Wort ==> THEN steht nicht vor dem Wort

Vollständige Umschreibungsfunktion:

Besorgen Sie sich den Quellcode, um die oben erwähnte vollständige Umschreibungsfunktion zu erhalten.

Zusätzliche Funktionen:

  • Eingabe von Unicode-Zeichen in logischen Code Punkte
  • Komfortable Definitionen für Wörter, Bindestriche, Bindestriche und Apostrophe in natürlicher Sprache
  • Erweiterung von Regex-Escapezeichen und Aufhebung der Escapezeichen bei String-Escapezeichen

Das obige ist der detaillierte Inhalt vonWie behandelt man Unicode-Zeichen in regulären Java-Ausdrücken mithilfe von w- und b-Äquivalenten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage