Ich verwende ein Java-Regex-Muster in einer Anwendung, die nur den Zugriff auf den gesamten Match-Wert erlaubt (dh ich kann keine einfangenden Gruppen verwenden).Java-Regex-Lookbehind-Problem mit Quantifizierern
Ich versuche, Werte aus meinem Beispieltext zu extrahieren:
C02 SURVEY : 2010 F10446P BONAPARTE 2D
Im obigen Beispiel I für das Schlüsselwort SURVEY
und Wert extrahiert nach diesen :
müssen überprüfen müssen. Und wollte ich meine Ausgabe sein:
2010 F10446P BONAPARTES 2D
ich das Muster verwendet (?<=(?i)survey\s{2}[:])(?:(?![\n]).)*
In diesem Muster habe ich die Räume fest einprogrammiert 2 sein (\s{2}
) EVENTUELL variieren und nicht konstanten Wert.
Ich muss Quantifizierer mit Lookbehind-Operation verwenden.
Wenn eine andere Option vorhanden ist, lassen Sie es mich bitte wissen.
Entfernen Sie den Lookbehind und verwenden Sie eine Erfassungsgruppe über dem Muster, das Sie extrahieren müssen. Übrigens stimmt ein Punkt nicht mit einem Zeilenumbruch überein. Verwenden Sie '(? I) Umfrage \ s *: (. *)' –
Was ist die Regex-Engine? –
Meine Anwendung wiederum verwendet Java, um die Übereinstimmung zu extrahieren. So wird die vollständige Übereinstimmung zurückgegeben – DeviN