Ich möchte Strings aus Text erhalten, wo die Strings zwischen zwei anderen Strings liegen - aber beide dieser beiden Strings sind teilweise mit Regex-Ausdrücken definiert ebenfalls.Python Regex: Suche nach Ausdruck zwischen zwei Ausdrucken (auch regex-ed)
Also, aus den folgenden Zeilen:
ALPHA101BETAsomething1GAMMA532DELTA
ALPHA231BETAsomething2GAMMA555DELTA
ALPHA341BETAagainsomethingsomethingGAMMA998DELTA
Ich möchte folgendes erhalten:
something1
something2
againsomething
hier Mein Problem ist, dass ich nicht die Öffnungs- und Schließ Ausdrücke definieren können, so dass diese sind etwas plus eine dreistellige Ausdrücke plus noch einmal etwas.
Bisher habe ich versucht, aber nicht mit diesem:
re.findall("ALPHA(?:\d\.){3}BETA(.*?)GAMMA(?:\d\.){3}DELTA", pagetext)
Wie kann ich anweisen, den Parser, der eine bestimmte Regex Gruppe nicht das gewünschte Ergebnis, sondern Teil der Öffnungs-/Schließ Strings?
Ist ihr jede Zeile Seperator? –
Was erwarten Sie mit '(?: \ D \.) {3}'? Gibt es in Ihren Eingabezeichenfolgen literale Punkte? Vielleicht brauchst du nur ['(? S) ALPHA \ d {3} BETA (. *?) GAMMA \ d {3} DELTA' (https://regex101.com/r/XUaVfi/1)? Siehe auch [eine Python-Demo] (https://ideone.com/ecZPuA). –