RE : Platzhalter für alle möglichen Zeichen (auch Sonderz.)

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
MacEvil
User
Beiträge: 52
Registriert: Mittwoch 21. Januar 2004, 21:40

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
Milan
User
Beiträge: 1078
Registriert: Mittwoch 16. Oktober 2002, 20:52

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?
Zuletzt geändert von Milan am Donnerstag 22. Januar 2004, 17:52, insgesamt 1-mal geändert.
MacEvil
User
Beiträge: 52
Registriert: Mittwoch 21. Januar 2004, 21:40

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..
HarryH
User
Beiträge: 266
Registriert: Freitag 23. Mai 2003, 09:08
Wohnort: Deutschland

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.
Zuletzt geändert von HarryH am Donnerstag 22. Januar 2004, 15:32, insgesamt 1-mal geändert.
Gruß, Harry
Dookie
Python-Forum Veteran
Beiträge: 2010
Registriert: Freitag 11. Oktober 2002, 18:00
Wohnort: Salzburg
Kontaktdaten:

Hi MacEvil,

schau mal da http://python.sandtner.net/viewtopic.php?t=1094


Gruß

Dookie
Dookie
Python-Forum Veteran
Beiträge: 2010
Registriert: Freitag 11. Oktober 2002, 18:00
Wohnort: Salzburg
Kontaktdaten:

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
MacEvil
User
Beiträge: 52
Registriert: Mittwoch 21. Januar 2004, 21:40

@ Dookie :
Hm.. wenn ich es im Terminal ausführen will, wird nichts angezeigt, aber abbrechen kann ich auch nicht
Dookie
Python-Forum Veteran
Beiträge: 2010
Registriert: Freitag 11. Oktober 2002, 18:00
Wohnort: Salzburg
Kontaktdaten:

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
Antworten