Heim >Java >javaLernprogramm >Wie kann ich Unicode-fähige reguläre Ausdrücke in Java erstellen?

Wie kann ich Unicode-fähige reguläre Ausdrücke in Java erstellen?

Barbara Streisand
Barbara StreisandOriginal
2024-12-26 03:41:08214Durchsuche

How Can I Create Unicode-Aware Regular Expressions in Java?

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

Die Regex-Implementierung von Java verwendet nicht die Abkürzungen der w-Zeichenklasse für „jeden Buchstaben“. , Ziffer oder verbindende Satzzeichen“ wie andere Implementierungen auch. Dies erschwert die Zuordnung von Unicode-Wörtern. Das Problem erstreckt sich auf das Worttrennzeichen „b“, das in Java ebenfalls inkonsistentes Verhalten zeigt.

Unicode-fähige Äquivalente

Um diese Probleme zu beheben, kann man ein Regex-Muster neu schreiben unter Verwendung der folgenden Ersetzungen:

  • w: [pLpMp{Nd}p{Nl}p{Pc}[p{InEnclosedAlphanumerics}&&p{So}]]
  • b: (?:(?<=[pLpMp{Nd}p{Nl}p{Pc}[p{InEnclosedAlphanumerics}&&p{So}]])(?![pLpMp{Nd}p{Nl}p{Pc}[ p{InEnclosedAlphanumerics}&&p{So}]])|(?

Andere Unicode-Eigenschaften

Zusätzlich zu w und b fehlt den regulären Ausdrücken von Java die Unicode-fähige Unterstützung für andere Eigenschaften. Diese Eigenschaften können jedoch durch die Verwendung der p-Syntax erweitert werden, wie unten gezeigt:

Java Syntax Unicode Property
p{Lower} Unicode Lowercase
p{Upper} Unicode Uppercase
p{ASCII} ASCII
p{Alpha} Unicode Alphabetic
p{Digit} Unicode Digit
p{Alnum} Unicode Alphanumeric
p{Punct} Unicode Punctuation
p{Graph} Unicode Graph
p{Print} Unicode Printable
p{Blank} Unicode Blank
p{Cntrl} Unicode Control
p{XDigit} Unicode Hexadecimal Digit
p{Space} Unicode Space

Unicode-fähiger Regex

Durch die Einbindung dieser Unicode-fähigen Ersatzstoffe man kann Regex-Muster erstellen, die Unicode-Daten genau verarbeiten. Das folgende Muster stimmt beispielsweise mit Unicode-Wörtern überein:

Pattern pattern = Pattern.compile("\w+"); // Unicode-aware \w equivalent

Dieses Muster kann verwendet werden, um Wörter in Textzeichenfolgen abzugleichen, unabhängig davon, ob die Zeichen ASCII- oder Unicode-codiert sind.

Das obige ist der detaillierte Inhalt vonWie kann ich Unicode-fähige reguläre Ausdrücke in Java erstellen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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