Reguläre Ausdrücke - Oder-Verknüpfung

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
linzus
User
Beiträge: 6
Registriert: Donnerstag 28. April 2016, 16:47

Hallo Leute,
ich versuche gerade Python zu lernen. Ich habe eine Logdatei, und möchte dort verschiede Keys extrahieren.

Code: Alles auswählen

string="test peter testet gerne peters testergebnisse "
match=re.search(r"peter|test",string)
ich verstehe nicht, wieso ich damit nicht beides, "test" und "peter" abfangen kann?
ich habe sämtliche Kombinationen, mit, ohne Klammern, Anführungszeichen, usw. versucht. Es muss doch eine Möglichkeit geben, mehrere Matches zu greifen?

Vielen Dank und ebensolche Grüße,
...


PS: unter Galileo Computing steht leider nicht viel (unter "Alternativen"), nur soviel, dass ich dächte es müsse funktionieren :|
http://python.haas.homelinux.net/python ... 15_002.htm
Sirius3
User
Beiträge: 17741
Registriert: Sonntag 21. Oktober 2012, 17:20

@linzus: Was erwartest Du? Es wird das erste Auftreten des regulären Ausdrucks gefunden. Das ist nunmal "test". Willst Du alle Vorkommen haben, gibt es re.findall oder re.finditer.
linzus
User
Beiträge: 6
Registriert: Donnerstag 28. April 2016, 16:47

Hallo,
Ja ich hatte an so etwas wie egrep gedacht...
Jetzt verwende ich den Befehl einfach 2-mal hintereinander, aber effizient ist das natürlich nicht...
Danke und viele Grüße,
...
Benutzeravatar
snafu
User
Beiträge: 6738
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

linzus hat geschrieben:Jetzt verwende ich den Befehl einfach 2-mal hintereinander, aber effizient ist das natürlich nicht...
Was spricht denn gegen das bereits vorgeschlagene `re.findall`?
linzus
User
Beiträge: 6
Registriert: Donnerstag 28. April 2016, 16:47

sorry, hat ein wenig gedauert...
ja, das find.all passt genau.
Habe es auch gerade schon verwendet, und es funktioniert wie erwartet. Danke dafür!
Antworten