Reguläre Ausdrücke einen mehrzeiligen Textblock

Ich bin habend ein wenig Mühe, ein Python-regex zu arbeiten, wenn ein Abgleich mit text, der mehrere Zeilen umfasst. Beispiel text ('\n' ist ein Zeilenvorschub (newline))

some Varying TEXT\n
\n
DSJFKDAFJKDAFJDSAKFJADSFLKDLAFKDSAF\n
[more of the above, ending with a newline]\n
[yep, there is a variable number of lines here]\n
\n
(repeat the above a few hundred times).

Ich würde gerne erfassen zwei Dinge: die 'some_Varying_TEXT" Teil, und alle Zeilen von text in Großbuchstaben, zwei Zeilen darunter in one-capture (ich kann den Streifen aus dem newline-Zeichen später).
Ich habe versucht, mit ein paar Ansätze:

re.compile(r"^>(\w+)$$([.$]+)^$", re.MULTILINE) # try to capture both parts
re.compile(r"(^[^>][\w\s]+)$", re.MULTILINE|re.DOTALL) # just textlines

und viele Variationen hiervon mit kein Glück. Das Letzte scheint zu passen die Textzeilen nacheinander, das ist nicht das, was ich wirklich möchte. Ich kann fangen der erste Teil, ist das kein problem, aber ich kann nicht scheinen zu fangen die 4-5 Zeilen text in Großbuchstaben.
Ich würde gerne match.Gruppe(1) werden some_Varying_Text und Gruppe(2) zeile1+Zeile2+zeile3+etc, bis die leere Zeile gefunden wird.

Wenn jemand neugierig ist, sein soll eine Sequenz von Aminosäuren, eines proteins.

Gibt es etwas anderes in der Datei neben der ersten Zeile und den text in Großbuchstaben? Ich bin mir nicht sicher, warum Sie würde einen regex verwenden, anstatt die Spaltung der gesamte text bei Zeilenende-Zeichen und wobei das erste element als "some_Varying_TEXT".
ja, regex sind das falsche Werkzeug für diese.
Ihr Beispiel-text nicht mit einem der führenden > Charakter. Sollte es?

InformationsquelleAutor Jan | 2009-02-25

Schreibe einen Kommentar