Wörter in nicht spezifizierter Länge in regulären Ausdrücken

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
bremer
User
Beiträge: 109
Registriert: Sonntag 25. Mai 2008, 00:13

Ich nutze folgenden Code, um bestimmte Wörter zu finden. Die Wortlänge ist variabel, sie kann 2 bis 10 Buchstaben umfassen. Ich bin noch Neuling, was das re-Modul betrifft, von daher ist der Code wahrscheinlich eh zu umständlich. Das Problem ist aber die Wortlänge, die ich nicht variabel einzustellen weiß.

Code: Alles auswählen

import re
address = 'D:\Downloads\test.txt'
filecontent = open(address).read()
p = re.compile("(?<=size=3><b>).....(?=</b>)")
x = p.findall(filecontent)
print(x)
"....." führt dazu, dass nur Wörter mit der Länge von fünf Buchstaben gefunden werden. Ich möchte aber alle von ".." bis ".........." finden.

Mir fehlt die Syntax dazu. Probiert habe ich schon vieles, z.B. .{2, 10}.

Weiß jemand evtl. eine Lösung?
BlackJack

@bremer: Dann probier das gezeigte Beispiel nochmal ohne das Leerzeichen nach dem Komma.

Und wie immer der Hinweis, dass man HTML/XML in der Regel besser mit einem Parser verarbeiten sollte.
bremer
User
Beiträge: 109
Registriert: Sonntag 25. Mai 2008, 00:13

Interessant.

Es funktioniert nun.

Damit habe ich nicht gerechnet. Das re Modul ist da nochmal was anderes als Python selbst.

Danke.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Ja, Reguläre Ausdrücke und Python-Ausdrücke sind nicht das gleiche, deswegen gibt man Regex auch in Strings an, wie SQL oder ähnliches auch.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Antworten