Zahl in String finden (gelöst)

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.
BlackJack

@da.dom: ``re.findall("[0-9\.]*",s)`` liefert keine Leerzeichen sondern leere Zeichenketten. Das Muster passt halt auch auf leere Zeichenketten und die leere Zeichenkette steht zwischen jedem Zeichen. Und natürlich werden Punke gefunden.

Letztlich musst Du sowieso noch eine Funktion schreiben, die die Treffer vom regulären Ausdruck überprüft, denn ein regulären Ausdruck, der wirklich nur IPs findet, ist recht aufwändig und nicht mehr wirklich lesbar.
Benutzeravatar
snafu
User
Beiträge: 6732
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

Auch hierfür findest du zwei Lösungsvorschläge im gerade genannten Thread (ich glaube auf Seite 3).
da.dom
User
Beiträge: 114
Registriert: Dienstag 10. Juni 2008, 14:42

Tut mir Leid das ich schon wieder nerve und den (eigentlich schon beendeten) Post am leben erhalte, hab mich inzwischen ein bisschen mit den Expressions beschäftigt, aber irgendwie steige ich da nicht ganz durch. Hab mir alle möglichen Parsing Übungen überlegt, bei der hier scheitere ich, bzw. weiss gar nicht ob das so direkt überhaupt möglich ist:

Code: Alles auswählen

htmlString="Something and a URL <a href=\"http://www.google.de\">Zurück</a></p> and not really a URL <img src=\"http://www.bilderspace.de\">"

print re.findall("(<a href.*?>)",htmlString)
#>> ['<a href="http://www.google.de">']
Will aus einer HTML-Zeile, die Links herraus parsen. Soweit bin ich gekommen, um die Links teoretisch weiter verarbeiten zu können, müsste ich ja jetzt die HTML Tags entfernen, kann man so was direkt beim findall machen? Also quasi, finde den Ausdruck und gib mir das .* zurück :D ?

danke (schon wieder)
D
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Setze runde Klammern um das ``.*``, also ``(.*)``.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Benutzeravatar
snafu
User
Beiträge: 6732
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

Verwende doch einfach direkt ein Modul, das HTML parsen kann. Das Problem in meinem Fall/Thread war ja eigentlich nur, dass ich keinen IP Parser kenne. Es gibt da so nen Spruch, den ich wohl nicht mehr ganz auf die Reihe kriege. Aber er lautet in etwa: "You want to solve a problem with regular expressions? Now you got two problems." Anders gesagt: In den Fällen wo bereits fertige Lösungen zum Parsen eines bestimmten Formats existieren, sollte man auch möglichst auf diese zurückgreifen.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

snafu hat geschrieben:"You want to solve a problem with regular expressions? Now you got two problems."
JWZ hat geschrieben:Some people, when confronted with a problem, think “I know, I'll use regular expressions.”

Now they have two problems.
Quelle.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Antworten