RegEx für substrings als Liste

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.
KC853
User
Beiträge: 5
Registriert: Freitag 12. September 2008, 20:24

RegEx für substrings als Liste

Beitragvon KC853 » Sonntag 14. September 2008, 20:05

Nabend,

in einem Multiline String bin ich auf der Suche nach allen Substrings die in doppelten eckigen Klammern [[xxxxxx]] eingeschlossen sind. Es können auch mehrere pro Zeile auftreten. Ein

Code: Alles auswählen

re.compile('\[\[(.*)\]\]', re.I).findall(data)

findet natürlich alles vom ersten "[[" der zeile bis zum letzten "]]". Wenn nur ein Substring pro Zeile da ist tuts dann also, aber wenn mehrere Substrings pro Zeile existieren tuts nicht.

Wie müsste ich also umformen/ergänzen um das zu erreichen?

Gruß KC853
Redprince
User
Beiträge: 128
Registriert: Freitag 22. Oktober 2004, 09:22
Wohnort: Salzgitter
Kontaktdaten:

Beitragvon Redprince » Sonntag 14. September 2008, 20:37

Dein RegEx ist greedy. Wenn du statt .* ein .*? nutzt, ist der entsprechende Teil nicht mehr so gierig ;)
I am not part of the allesburner. I am the allesburner.
KC853
User
Beiträge: 5
Registriert: Freitag 12. September 2008, 20:24

Beitragvon KC853 » Montag 15. September 2008, 06:53

Oh Mann, dieses greedy hatte ich zu den fortgeschrittenen Techniken gezählt und nicht weitergelesen ...

RegEx sind echt ne mächtige Waffe.

Gruß KC853
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Beitragvon Leonidas » Montag 15. September 2008, 10:17

KC853 hat geschrieben:RegEx sind echt ne mächtige Waffe.

Scheinen auf den ersten Blick so, aber Pythons Regex haben dann nun noch etwas Lookahead und negatives Lookahead und das war dann im großen und ganzen schon alles. Bei Perl kann man noch einige Sachen mehr machen, aber das sind schon weniger Reguläre Ausdrücke und mehr in Richtung Programmiersprache.
My god, it's full of CARs! | Leonidasvoice vs Modvoice

Wer ist online?

Mitglieder in diesem Forum: Bing [Bot]