Seite 1 von 1

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

Verfasst: Freitag 10. Dezember 2010, 15:03
von bremer
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?

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

Verfasst: Freitag 10. Dezember 2010, 15:42
von 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.

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

Verfasst: Freitag 10. Dezember 2010, 15:57
von bremer
Interessant.

Es funktioniert nun.

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

Danke.

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

Verfasst: Samstag 11. Dezember 2010, 13:25
von Leonidas
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.