Naja, aber irgendein anderer lokaler Rechnername als `localhost` könnte ja auch genommen werden. Der Punkt ist, das es gültige E-Mail-Adressen ohne Punkt gibt. Warum die also ohne Not ausschliessen?
`all()` ist kein Schlüsselwort sondern eine Funktion.
Das ``not`` steht an der falschen Stelle, denn Du willst ja das die beiden Zeichen darin vorkommen und nicht das beide Zeichen nicht drin vorkommen.
Nach dem ``and`` macht das `all()` keinen Sinn wenn da nur auf *ein* Zeichen geprüft wird. ``'/' not in string`` ist kürzer und macht das gleiche. Wenn es mehr werden sollten, dann braucht man da auch `any()` statt `all()`.
Aber auch hier wieder: '/' kann in gültigen E-Mails vorkommen.
Wobei in den Headern von einer E-Mail ja noch ganz andere Sachen vorkommen können.
Ausserdem würde ich sowas nicht selber schreiben — da gibt's schon Bibliotheken für.
Character in String, and-Kette, Verwirrung
- __blackjack__
- User
- Beiträge: 13077
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
Bei nur zwei gesuchten Buchstaben würde ich wahrscheinlich auch kein all() nehmen, sondern es mit der and-Verknüpfung lösen. An sich wollte ich nur zeigen, dass es auch anders geht, wenn man mehrere Suchkriterien hat, die alle enthalten sein sollen.
Und immer schön an das Laufzeitverhalten denken: Mehrfache in-Operationen auf den gleichen Text haben quadratische Laufzeit. Jetzt ist das egal, aber bei größeren Texten kann das zum Problem werden. Wenn dann Auswirkungen auf die Laufzeit spürbar sind, sollte man sich nach Alternativen umsehen.
Und immer schön an das Laufzeitverhalten denken: Mehrfache in-Operationen auf den gleichen Text haben quadratische Laufzeit. Jetzt ist das egal, aber bei größeren Texten kann das zum Problem werden. Wenn dann Auswirkungen auf die Laufzeit spürbar sind, sollte man sich nach Alternativen umsehen.