2016-09-30 3 views
-2

In Python, wenn ich etwas schreiben wollte, das eine boolesche True zurückgibt, solange das @ -Symbol nach dem erscheint. Symbol, wie würde ich das schreiben?Python einfache Email Gültigkeitsprüfung

ich versucht habe, etwas zu schreiben, wie:

if myString[x] == "@" > myString[x] == ".": 
    return True 

aber gehe ich davon aus, dass dies nicht funktionieren, weil sie beide im Wesentlichen den gleichen Index sind. Auf der Suche nach einer Erklärung, nur noch eine Menge Grundlagen zu lernen. Danke!

+1

Sie möchten wissen, ob @ nach oder vor '.' für die E-Mail-Validierung erscheint? – depperm

+3

'this.is.a.valid @ email.address' und Ihr Algorithmus schlägt fehl. – kennytm

+0

Für die Überprüfung der E-Mail-Adresse siehe http://stackoverflow.com/questions/8022530/python-check-for-valid-email-address. – kennytm

Antwort

1
if str.index('@') > str.index('.'): 
    return True; 
+0

Dies wird zu einem Fehler führen, wenn der String nicht '@' oder '.' enthält. – Efferalgan

+0

Zusätzlich wäre es besser einfach' return str.index ('@')> str.index ('.') ' –

+0

@ Efferalgan: Er hat nur nach der Syntax gefragt, wenn Sie die Frage richtig gelesen haben. Außerdem ist die E-Mail-Gültigkeit selbst falsch als @>. ist keine korrekte Methode zum Überprüfen von E-Mails. – FallAndLearn

1

Sie könnten mit einem einfachen regulären Ausdruck verwenden:

import re 

rx = re.compile(r'\[email protected]\S+') 

string = """This text contains an [email protected] somewhere""" 

if rx.search(string): 
    print("Somewhere in there is an email address") 

a demo on ideone.com See.

+1

Dies entspricht nicht den Einschränkungen der Frage (obwohl es natürlich die Einschränkungen der Realität erfüllen kann) –

+0

@NickBastin: Gute Punkte - beide :) – Jan

1

return str.find('@') > str.find('.') and str.find('.') > -1

Diese prüft, ob @ nach . ist, und dass beiden Symbole in der Zeichenfolge vorhanden sind. Dies ist jedoch eine sehr schlechte Möglichkeit, um die Gültigkeit der E-Mail zu überprüfen.