Heim > Java > javaLernprogramm > Wie kann ich die Unicode-Unterstützung in regulären Java-Ausdrücken für \w und \b verbessern?

Wie kann ich die Unicode-Unterstützung in regulären Java-Ausdrücken für \w und \b verbessern?

Mary-Kate Olsen
Freigeben: 2024-12-10 11:03:13
Original
182 Leute haben es durchsucht

How Can I Improve Unicode Support in Java Regular Expressions for w and b?

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

Javas Regex-Implementierung bietet nur begrenzte Unterstützung für Unicode, was es schwierig macht, Wörter oder zuzuordnen Wortgrenzen genau. Die standardmäßigen W- und B-Escapezeichen entsprechen nur ASCII-Zeichen.

Um dieses Problem zu beheben, sollten Sie die Verwendung einer Funktion in Betracht ziehen, die diese Escapezeichen neu schreibt und sie durch Unicode-fähige Definitionen ersetzt. Diese Funktion kann die folgenden 14 Zeichenklassen-Escapezeichen umschreiben:

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

Umgeschriebene Escape-Definitionen:

  • w: Erfasst Buchstaben, Ziffern und bestimmte Satzzeichen (p{L}pMp{Nd}p{Nl}p{Pc}[p{InEnclosedAlphanumerics}&&p{So}]])
  • W: Schließt alle mit w übereinstimmenden Zeichen aus
  • s: Entspricht Unicode-Leerzeichen ([u0009-u000Du0020u0085u00A0u1680u180Eu2000-u200Au2028u2029u202Fu205Fu3000])
  • S: Schließt alle mit s übereinstimmenden Zeichen aus
  • v: Entspricht Unicode-Vertikal Leerzeichen ([u000A-u000Du0085u2028u2029])
  • V: Schließt alle mit v übereinstimmenden Zeichen aus
  • h: Entspricht dem horizontalen Unicode-Leerzeichen ([u0009u0020u00A0u1680u180Eu2000-u200Au202Fu205Fu3000])
  • H: Schließt alle mit h übereinstimmenden Zeichen aus
  • d: Entspricht Unicode-Ziffern (p{Nd})
  • D: Schließt alle mit d übereinstimmenden Zeichen aus.
  • b: Entspricht Wortgrenzen unter Berücksichtigung nur von Unicode-Wortzeichen.
  • B: Entspricht Nicht-Wortgrenzen unter Berücksichtigung von Unicode-Wortzeichen.
  • X: Entspricht erweiterten Graphemen Cluster
  • R: Entspricht Zeilenumbrüchen, einschließlich Unicode-Zeile Pausen

Grenzdefinitionen:

Grenzfluchten (b und B) können mit der folgenden Logik umgeschrieben werden:

  • b : (?:(?<=w)(?!w)|(?
  • B: (?:(?<=w)(?= w)|(?

Java reparieren mit Java:

Diese Funktion kann in Java mithilfe des im ursprünglichen Diskussionsthread bereitgestellten Codes implementiert werden. Mithilfe dieses Codes können Sie Regex-Muster neu schreiben, um Unicode-Zeichen besser zu verarbeiten.

Hinweis:
In Java 7 führt die Pattern-Klasse das Flag UNICODE_CHARACTER_CLASS ein, das die Unicode-Unterstützung für ermöglicht diese Escapes standardmäßig.

Das obige ist der detaillierte Inhalt vonWie kann ich die Unicode-Unterstützung in regulären Java-Ausdrücken für \w und \b verbessern?. 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