Regex: Viele Suchbegriffe in einem Ausdruck oder wenige?
Verfasst: Sonntag 16. Juni 2013, 23:10
Hallo zusammen,
ich möchte einen Text nach verscheidenen Schlagwörtern zeilenweise durchsuchen. Welches Vorgehen ist dann günstiger, nach z.B. drei Schlagworten in einem Ausdruck zu suchen:
Oder ist es besser, für jedes Schlagwort einen eigenen Ausdruck anzulegen und den dann zu bearbeiten:
Es sind einige 100 Schlagworte und die Dateien sind recht lang, so 20000 bis 30000 Zeilen Text.
Der Ausdruck, den ich für die kombinierte Suche verwenden würde, sähe so aus:Er tut scheinbar das, was er soll, auch wenn er ein Schlagwort am Anfang der Zeile (ohne whitespace) nicht erkennt (was aber ok ist).
Welches ist der bessere Weg?
Gruß und Danke,
Christoph
ich möchte einen Text nach verscheidenen Schlagwörtern zeilenweise durchsuchen. Welches Vorgehen ist dann günstiger, nach z.B. drei Schlagworten in einem Ausdruck zu suchen:
Code: Alles auswählen
for line in file:
m = re.findall( '(sw1)|(sw2)|(sw3)', line)
<arbeite mit m>Code: Alles auswählen
for line in file:
for sw in (sw1, sw2, sw3):
m = re.findall( '(%s)' % (sw), line)
<arbeite mit m>Der Ausdruck, den ich für die kombinierte Suche verwenden würde, sähe so aus:
Code: Alles auswählen
\W+(sw2)\W|\W+(sw3)\WWelches ist der bessere Weg?
Gruß und Danke,
Christoph