Frank Schönmann: Regulärer Ausdruck: Suchmuster funktioniert nicht!?

Beitrag lesen

hi!

lt. SelfHTML wird mit
/[a-zA-Z0-9_]/
überprüft, ob die zu prüfende Zeichenkette mindesten eins der
Zeichen vom Typ Buchstabe (ohne Umlaute), vom Typ Ziffer oder
einen Unterstrich enthält.

Ich hoffe nicht, dass das Wörtchen "mindestens" auch so in SELFHTML
steht, dann wäre es nämlich falsch. Obige Zeile überprüft, ob eines
-- zwar nicht _genau_ eines, aber auch nicht _mindestens_ eines --
der angegebenen Zeichen in der Zeichenkette vorkommt. Der reguläre
Ausdruck oben matcht allerdings nur auf genau ein Zeichen des Strings
und nicht auf mehrere.

Dann müsste ich doch mit
/[a-zA-Z0-9]@[a-zA-Z0-9].[a-zA-Z0-9]/
überprüfen können, ob es sich evtl. um eine Email-Adresse handelt

Siehe oben. Überprüft wird, ob folgendes im String vorkommt: genau
ein Zeichen aus \w, dann ein @, dann genau ein Zeichen aus \w, dann
ein Punkt, dann genau ein Zeichen aus \w.

Wenn du an irgendeiner der Stellen auf _mehrere_ Zeichen überprüfen
willst, musst du Quantifier verwenden, also {,}, + oder *. Genauere
Informationen hierzu findest du auch wieder in SELFHTML. Jedenfalls
müsste es etwa folgendermaßen aussehen:
  /\w+@\w+.\w+/

Dann überprüft er, ob im String vorkommt: mindestens ein Zeichen aus
\w, dann ein @, dann mindestens ein Zeichen aus \w, dann ein Punkt,
dann mindestens ein Zeichen aus \w.

\w ist eine abkürzende Schreibweise für u.a. [a-zA-Z9-0] und bedeutet
soviel wie "allgemein lesbare Zeichen" oder so... ;)

bye, Frank!

ps. Ob man @-Zeichen in regulären Ausdrücken maskieren muss, weiß
ich gerade nicht auswendig. Ich vermute aber nein.