Seite 1 von 1

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

Verfasst: Donnerstag 28. April 2016, 16:56
von linzus
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

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

Verfasst: Donnerstag 28. April 2016, 18:10
von Sirius3
@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.

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

Verfasst: Donnerstag 28. April 2016, 22:08
von linzus
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,
...

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

Verfasst: Donnerstag 28. April 2016, 22:14
von snafu
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`?

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

Verfasst: Montag 2. Mai 2016, 14:42
von linzus
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!