Seite 1 von 1
Nur bestimmte Zeichen in einem String erlauben
Verfasst: Dienstag 22. Juli 2003, 11:49
von Volano
Hallo,
wie kann ich nur bestimmte Zeichen in einem String erlauben?
z.b.: möchte ich nur diese erlauben: abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890
wie mach ich das am besten?
Verfasst: Dienstag 22. Juli 2003, 12:26
von Bugfix
Generell wüßte ich keine Methode
- allerdings könntest du einen kleinen Umweg gehen.
Das sollte mit .replace funktionieren, etwa so :
stringname.replace("ö","oe")
stringname.replace("!","")
Dabei wird z.b. ö mit oe und beim zweiten ! mit "" (fällt weg) ersetzt.
Ist natürlich etwas mehr arbeit.
Ob das stringname.replace ("!", "#", "") - also die ersten Zeichen 'löschen', funktioniert weis ich nicht genau. Aber über die Funktion würde ich mich versuchen schlau zu machen.
Gruß,
Bugfix
Verfasst: Dienstag 22. Juli 2003, 12:36
von Volano
mhhm.. ich dachte da eher an ein RegEx oder so, weil das für mich irgendwie die "sauberste" Methode ist. Leider bin ich in RegEx eine Null
Verfasst: Dienstag 22. Juli 2003, 12:37
von Milan
Wie meinst du erlauben? Bei Benutzereingaben? Oder allgemein?
Du kannst alle anderen zeichen auch einfach aus dem String löschen lassen:
Code: Alles auswählen
from re import sub
def loesche(text=""):
return sub('[^abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890]', '', text)
Re: Nur bestimmte Zeichen in einem String erlauben
Verfasst: Dienstag 22. Juli 2003, 12:41
von Voges
Volano hat geschrieben:wie kann ich nur bestimmte Zeichen in einem String erlauben?
Was meinst Du mit erlauben? Dass bei einer Zuweisung wie
s = "asdfäöüß1234" nicht erlaubte Zeichen in
s landen, wirst Du nicht verhindern können (außer Du schreibst Dir Deine eigene String-Klasse). Oder willst Du nur prüfen, ob ein String unerlaubte Zeichen enthält? Da gäbe es einige Möglichkeiten. Guck mal unter
http://python.sandtner.net/viewtopic.php?t=548. Da gab es einige Anregungen.
Ansonsten mach nochmal genauere Angaben, was Du in welchem Kontext machen willst.
Jan
Verfasst: Dienstag 22. Juli 2003, 13:26
von Qbi
Milan hat geschrieben:Code: Alles auswählen
from re import sub
def loesche(text=""):
return sub('[^abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890]', '', text)
Wobei hier IMHO
besser geeignet ist, um alle Buchstaben von A bis Z darzustellen.
Verfasst: Dienstag 22. Juli 2003, 14:00
von Volano
Vielen Dank!
es hat so geklappt:
search(r"^[A-Z,a-z,0-9]{" + str(len(UserNick)) + "}$", UserNick)
Grüße, Volano
Verfasst: Dienstag 22. Juli 2003, 14:19
von Voges
Hallo!
Volano hat geschrieben:search(r"^[A-Z,a-z,0-9]{" + str(len(UserNick)) + "}$", UserNick)
So werden aber auch Nicks mit einem Komma drin erkannt. Das in den eckigen Klammern gilt als Zeichenmenge.
Einfacher:
search(r"[A-Za-z0-9]*$", UserNick)
Jan