Heim > Java > javaLernprogramm > Wie extrahiere ich Text nach einer Regex-Übereinstimmung mithilfe einer positiven Lookbehind-Assertion?

Wie extrahiere ich Text nach einer Regex-Übereinstimmung mithilfe einer positiven Lookbehind-Assertion?

Barbara Streisand
Freigeben: 2024-11-08 01:18:03
Original
848 Leute haben es durchsucht

How to Extract Text After a Regex Match Using a Positive Lookbehind Assertion?

Text nach Regex-Übereinstimmung abrufen

Im Bereich regulärer Ausdrücke (Regex) kann das Extrahieren spezifischer Informationen aus Text eine Herausforderung sein. Eine häufige Aufgabe besteht darin, den Text abzurufen, der auf eine bestimmte Übereinstimmung folgt. Dieser Artikel führt Sie durch diesen Prozess und geht näher auf Ihre spezifische Anforderung ein, Text nach der Zeichenfolge „Satz“ zu finden.

Ihr vorhandenes Regex-Muster „Satz(.*)“ identifiziert die Zeichenfolge „Satz“ erfolgreich . Es erfasst jedoch auch den übereinstimmenden Text selbst, was nicht das gewünschte Ergebnis ist.

Um Ihr Ziel zu erreichen, sollten Sie eine positive Lookbehind-Behauptung verwenden. Mit dieser Funktion können Sie eine bestimmte Position in einer Zeichenfolge abgleichen, ohne den abgeglichenen Text tatsächlich zu einem Teil des Ergebnisses zu machen. In Ihrem Fall möchten Sie eine Position direkt nach „Satz“ abgleichen, ohne sie einzuschließen.

Das folgende modifizierte Regex-Muster erreicht dies:

(?<=sentence).*
Nach dem Login kopieren

Aufschlüsselung des Musters:

  • (?<=Satz): Diese positive Lookbehind-Behauptung stimmt mit einer Position unmittelbar nach der Zeichenfolge „Satz“ überein.
  • .*: Dies stimmt effektiv mit einer beliebigen Anzahl von Zeichen überein, die auf die Lookbehind-Behauptung folgen Erfassen des Textes nach „Satz“.

In Java können Sie dieses Muster verwenden, um den gewünschten Text wie folgt abzurufen:

Pattern pattern = Pattern.compile("(?<=sentence).*");
Matcher matcher = pattern.matcher("some lame sentence that is awesome");

boolean found = false;
while (matcher.find()) {
    System.out.println("I found the text: " + matcher.group().toString());
    found = true;
}
if (!found) {
    System.out.println("I didn't find the text");
}
Nach dem Login kopieren

Dieser Code gibt den Text „das“ aus ist großartig“ wie erwartet, ohne die Zeichenfolge „Satz“ einzuschließen.

Das obige ist der detaillierte Inhalt vonWie extrahiere ich Text nach einer Regex-Übereinstimmung mithilfe einer positiven Lookbehind-Assertion?. 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