Heim >Java >javaLernprogramm >Wie extrahiere ich Text nach einem Regex-Match mithilfe von Lookbehind-Assertions?

Wie extrahiere ich Text nach einem Regex-Match mithilfe von Lookbehind-Assertions?

Linda Hamilton
Linda HamiltonOriginal
2024-11-08 11:31:02472Durchsuche

How to Extract Text After a Regex Match Using Lookbehind Assertions?

Text nach Regex-Übereinstimmung abrufen

Bei Ihrem Bestreben, Regex effektiv zu nutzen, sind Sie auf eine Herausforderung gestoßen: Text nach einem übereinstimmenden Muster zu extrahieren . Lassen Sie uns in die Lösung eintauchen.

Ihr ursprüngliches Regex-Muster „sentence(.*)“ erreicht Ihr Ziel fast. Es erfasst jedoch unterschiedslos sowohl die übereinstimmende Zeichenfolge („Satz“) als auch den nachfolgenden Text. Um dies zu ändern, müssen wir ein Konzept einführen, das als „Lookbehind-Behauptung“ bekannt ist.

Verwendung einer Lookbehind-Behauptung

Eine positive Lookbehind-Behauptung (?<=. ..) entspricht einer bestimmten Position in der Zeichenfolge, unmittelbar nach einem bestimmten Ausdruck. In diesem Fall möchten wir eine Position direkt nach der Zeichenfolge „Satz“ abgleichen:

(?<=sentence).*

Dieses Muster lautet: „Übereinstimmung mit null oder mehr Zeichen nach einer Position, an der ‚Satz‘ unmittelbar davor steht.“ Somit wird der gewünschte Text erfolgreich extrahiert.

Implementierung in Java

Um dies in Java zu implementieren, können Sie Ihren Code wie folgt ändern:

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");
}

Wenn der Regex nun auf die Eingabezeichenfolge angewendet wird, wird nur der folgende Text abgeglichen und gedruckt „Satz“:

I found the text: that is awesome

Das obige ist der detaillierte Inhalt vonWie extrahiere ich Text nach einem Regex-Match mithilfe von Lookbehind-Assertions?. 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