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).*
Aufschlüsselung des Musters:
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"); }
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!