Seite 1 von 1

"expected string or buffer" bei re

Verfasst: Freitag 9. Oktober 2009, 18:56
von krisi12345
HI!
Ich habe ein kleines Programm das eine Email-Adresse überprüfen soll.
Der code des re teils lautet:

Code: Alles auswählen

if re.search("(.*?)[@]{1}(.*?)[.]{1}(.*?)", email, re.I):
Dabei wird dann der oben genannte Fehler ausgegeben.
Hat einer ne Lösung?

Re: "expected string or buffer" bei re

Verfasst: Freitag 9. Oktober 2009, 19:06
von /me
krisi12345 hat geschrieben:HI!
Ich habe ein kleines Programm das eine Email-Adresse überprüfen soll.
Der code des re teils lautet:

Code: Alles auswählen

if re.search("(.*?)[@]{1}(.*?)[.]{1}(.*?)", email, re.I):
Dabei wird dann der oben genannte Fehler ausgegeben.
Was für einen Datentyp hat denn die Variable email?

Zudem ist es etwas befremdlich, wenn du auf das @-Zeichen mit [@]{1} prüfst statt einfach nur das Zeichen selber hinzuschreiben.

Verfasst: Freitag 9. Oktober 2009, 19:06
von derdon
was sagt

Code: Alles auswählen

print type(email)
:?:

Zum Prüfen von Email-Adressen gab es vor ein paar Tagen nen Thread.

Edit: Ah, hier ist er: http://www.python-forum.de/topic-19829.html

Verfasst: Freitag 9. Oktober 2009, 19:07
von jbs
Was verbirgt sich denn hinter email? Das sollte ein string oder buffer sein (was es bei dir nicht ist)

email und re.... such mal danach und du wirst sehen, es ist ganz schön untrivial

verdammt, da waren 2 schneller als ich :)

Verfasst: Freitag 9. Oktober 2009, 19:50
von cofi
jbs hat geschrieben:email und re.... such mal danach und du wirst sehen, es ist ganz schön untrivial
Um das mal auf die Essenz zu reduzieren: Geh sicher, dass das einen Klammeraffen hat und vergiss den Rest. Eine valide Email-Adresse kann jede Menge Zeichensalat beeinhalten.

Verfasst: Samstag 10. Oktober 2009, 12:06
von krisi12345
Type von email?

Code: Alles auswählen

<type 'str'>

Verfasst: Samstag 10. Oktober 2009, 12:48
von EyDu
Das von dir gezeigte Stück Code funktioniert ohne Probleme mit "email" als String. Zeig doch mal mehr Code und erstelle Antworten mit mehr als drei Wörtern.