Seite 1 von 1
RE : Platzhalter für alle möglichen Zeichen (auch Sonderz.)
Verfasst: Mittwoch 21. Januar 2004, 21:45
von MacEvil
Hallo,
ich hab schon ewig rumprobiert, komm aber nicht drauf. Gibts eine Gruppe (sowie a-zA-Z0-9) für Sonderzeichen ? das mit dem "." geht irgenwie nicht
Verfasst: Mittwoch 21. Januar 2004, 21:54
von Milan
Nein, es gibt keine konkrete Gruppe. Aber du kannst die dir doch ganz leicht selebr zusammenstellen, einfach in [ ] Klammern schreiben, oder falls das zuviel ist, die nicht erwünschten Zeichen (halt die übrigen) ausschließen. (z.B.: [^a-zA-z0-9])
Was für einen Re möchtest du denn basteln?
Verfasst: Donnerstag 22. Januar 2004, 14:08
von MacEvil
Hm, also der zu suchende String sieht so aus :
<b><a href="/ordner/blbla">text</a></b><br><br>
RegExp : ">[alleZeichen]</a></b><br><br>"
aber jedes Auflisten ist ja mühsam..
Verfasst: Donnerstag 22. Januar 2004, 14:15
von HarryH
Hallo MacEvil,
Was meinst du alles mit Sonderzeichen? Es gibt sehr, sehr viele.
Wenn du die auf der deutschen Tastatur üblichen meinst, hilft dir vielleicht das "string"-Modul weiter.
"string.punctuation" liefert folgende Zeichen:
!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~
"string.printable" liefert folgende Zeichen:
0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~
Du könntest sie z.B. so im "re"-Modul verwenden.
Code: Alles auswählen
import re
import string
s="C:\Dokume&nte und Einst^()'#ellu**ngen\All Users]\Dokumente\Hinz+Kunz"
var1=string.punctuation
find=re.findall("["+var1+"]",s)
Nachtrag: Leider kam mein Beitrag zu spät. Deswegen paßt er nicht mehr so ganz.
Verfasst: Donnerstag 22. Januar 2004, 14:52
von Dookie
Verfasst: Donnerstag 22. Januar 2004, 15:06
von Dookie
ich seh grad, du willst ja nicht den Link sondern das was zwischen <a href=...> und </a> steht, dann lass doch alle Zeichen durch, die nicht "<" sind.
Code: Alles auswählen
"<a.*?href\s*=\s*[\"']?([^\s\"'>]+).*?>([^<]*)</a></b><br><br>"
Liefert Dir mit findall, eine Liste von Tuplen (linkziel,linktext) aller passenden Links.
Gruß
Dookie
Verfasst: Freitag 23. Januar 2004, 12:36
von MacEvil
@ Dookie :
Hm.. wenn ich es im Terminal ausführen will, wird nichts angezeigt, aber abbrechen kann ich auch nicht
Verfasst: Freitag 23. Januar 2004, 12:46
von Dookie
wie/was im terminal ausführen?
Code: Alles auswählen
>>> import re
>>> regex = re.compile("<a.*?href\s*=\s*[\"']?([^\s\"'>]+).*?>([^<]*)</a></b><br><br>")
>>> text = '<b><a href="/ordner/blbla">text</a></b><br><br>'
>>> found = regex.findall(text)
>>> for t in found:
... print t
...
('/ordner/blbla', 'text')
Gruß
Dookie