Heim > Java > javaLernprogramm > Wie kann ich Regex in Java verwenden, um Muster nur dann abzugleichen, wenn keine bestimmten Zeichen vorangestellt sind?

Wie kann ich Regex in Java verwenden, um Muster nur dann abzugleichen, wenn keine bestimmten Zeichen vorangestellt sind?

Patricia Arquette
Freigeben: 2024-11-29 22:46:11
Original
729 Leute haben es durchsucht

How Can I Use Regex in Java to Match Patterns Only When Not Preceded by Specific Characters?

Übereinstimmung von Mustern, denen keine bestimmten Zeichen vorangestellt sind, mithilfe von Regex

In Java bieten reguläre Ausdrücke eine leistungsstarke Möglichkeit, Muster in Zeichenfolgen abzugleichen. Manchmal müssen Sie ein Muster möglicherweise nur dann zuordnen, wenn ihm bestimmte Zeichen nicht vorangestellt sind. Durch die Nutzung des negativen Lookbehind können Sie mit Regex dies erreichen.

Problem:

Bedenken Sie die folgende Zeichenfolge:

String s = "foobar barbar beachbar crowbar bar ";
Nach dem Login kopieren

Wir möchten übereinstimmen alle Vorkommen von „bar“, denen nicht unmittelbar „foo“ vorangestellt ist. Die gewünschte Ausgabe wäre:

barbar
beachbar
crowbar
bar
Nach dem Login kopieren

Lösung:

Um diese Aufgabe zu erfüllen, können wir das folgende Regex-Muster verwenden:

\w*(?<!foo)bar
Nach dem Login kopieren

Das Muster aufschlüsseln:

  • w* entspricht einer beliebigen Anzahl von Wortzeichen (Buchstaben, Zahlen usw.). Unterstriche) vor der potenziellen Übereinstimmung. Dieser Teil erfasst Zeichen wie „beach“ in „beachbar“.
  • (?

Mithilfe dieses Musters können wir erfolgreich „bar“-Vorkommen abgleichen, denen kein „foo“ vorangestellt ist. Das Ergebnis spiegelt die gewünschte Ausgabe wider.

Zusätzliche Hinweise:

  • Weitere Informationen zum Regex-Negativ-Lookbehind finden Sie unter „Reguläre Ausdrücke – Lookaround.“
  • Der w*-Teil wurde später hinzugefügt, um die Zeichen vor dem Muster zu erfassen (z. B. „Strand“ in "Strandbar").

Das obige ist der detaillierte Inhalt vonWie kann ich Regex in Java verwenden, um Muster nur dann abzugleichen, wenn keine bestimmten Zeichen vorangestellt sind?. 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