Ist das mit regulären ausdrücken lösbar?

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Benutzeravatar
birkenfeld
Python-Forum Veteran
Beiträge: 1603
Registriert: Montag 20. März 2006, 15:29
Wohnort: Die aufstrebende Universitätsstadt bei München

sape hat geschrieben: c), d) Brauchen tut man die Klammern immer wenn man das Ergebnis des matches mit drin haben will:
Den Inhalt, ja. Aber wozu brauchst du die Sternchen?
Dann lieber noch Vim 7 als Windows 7.

http://pythonic.pocoo.org/
mitsuhiko
User
Beiträge: 1790
Registriert: Donnerstag 28. Oktober 2004, 16:33
Wohnort: Graz, Steiermark - Österreich
Kontaktdaten:

Ich sags gleich. Mit Regular Expressions geht sowas nicht. rst erlaubt rekursive Konstrukte.
TUFKAB – the user formerly known as blackbird
PmanX
User
Beiträge: 123
Registriert: Donnerstag 25. Januar 2007, 13:50
Wohnort: Germany.BB.LOS
Kontaktdaten:

Hallo,

Code: Alles auswählen

>>> p=re.compile(r'^(\w+)\n\s+(\S+)\s*(::)\s*\n\n(?:\s+(\w+)\n)*\n')
>>> m=p.search(source)
>>> m.groups()
('test', 'foobar', '::', 'test2')
>>> m.group(0)
'test\n  foobar ::\n\n   test\n   test2\n\n'
match zwar, fängt aber nicht alles ein.

Wenn ich nicht irre, brauchst Du Multiline nur, wenn Du Zeilenweise liest, der Match sich aber über mehrere Zeilen streckt.
ich muß mal den *Friedl* ausbuddeln.
Edit (PmanX): Multiline braucht man auch, wenn die Stringanker _^ und $_ logische Zeilen erkennen soll.

Edit (Leonidas): Code-Highlighting eingeschaltet.
Edit (PmanX): Besser. In Zukunft schalte ich noch VERBOSE ein. Er schluckt ja die Ausgaben :idea:
Zuletzt geändert von PmanX am Donnerstag 8. Februar 2007, 18:26, insgesamt 1-mal geändert.
sape
User
Beiträge: 1157
Registriert: Sonntag 3. September 2006, 12:52

birkenfeld hat geschrieben:Den Inhalt, ja. Aber wozu brauchst du die Sternchen?
War nur ein Beispiel um die Wirkungsweise von () darzustellen.
Antworten