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 :roll: - 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

Code: Alles auswählen

[[:alpha:]]
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