Tim Schuhmann: Regex ohne führende zahl

Beitrag lesen

hallo,

folgenden regex habe ich:

~[1]{1}[äöüß\w\d]{2,14}$~i

Auf das Muster soll zutreffen, dass am Anfang keine Zahl steht. Um das zu bewerkstelligen, habe ich ^ am Anfang und dann [äöüß\w]{1} stehen. Also alle deutschen Buchstaben in Groß und Kleinschreibung sind erlaubt. Das muss am Anfang einmal vorkommen! Danach dürfen 2 bis 14 Zeichen von den deutsche Buchstaben und Zahlen vorkommen. Sie dürfen auch mit einer Zahl enden.

if(preg_match('~^[äöüß\w]{1}[äöüß\w\d]{2,14}$~i','12234jasdj'))  
{  
	echo 'Not Good!';  
}

Insgesamt also zwischen 3 und 15 Buchstaben.

Allerdings gibt er jetzt "Not Good" aus. Warum? Wie muss der Ausdruck richtig lauten? Wenn ich das mit Zahlen mache, funktioniert es ja auch, siehe:

^[1-9]{1}[\d]{0,10}$

Hier darf z.B. keine Null am Anfang stehen und kann bis zu 11 Zeichen lang sein. Ist selbst dieser Ausdruck am Ende Falsch?

Bitte um Aufklärung :(

Danke,
Tim


  1. äöüß\w ↩︎