Tim Schuhmann: Regex ohne führende zahl

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 ↩︎

  1. Oha,

    jetzt hab ichs mit a-z probiert, dann funktioniert es. dann hab ich auf einer anderen quelle geschaut, \w beinhaltet auch zahlen, oh oh. Schlechtes tutorial gehabt. Da stand es sind dann buchstaben.

    danke trotzdem,
    Tim

    1. Hi,

      dann hab ich auf einer anderen quelle geschaut, \w beinhaltet auch zahlen,

      Zahlen nein, Ziffern ja.

      cu,
      Andreas

      --
      Warum nennt sich Andreas hier MudGuard?
      O o ostern ...
      Fachfragen per Mail sind frech, werden ignoriert. Das Forum existiert.
  2. Moin,

    Auf das Muster soll zutreffen, dass am Anfang keine Zahl steht.

    Wenn ich das jetzt richtig verstanden habe, sollte doch auch einfach folgendes funktionieren:

    ^[^0-9]\w{2,14}$

    Grüße Marco

    --
    Ich spreche Spaghetticode - fließend.
    1. Hi,

      Auf das Muster soll zutreffen, dass am Anfang keine Zahl steht.

      Wenn ich das jetzt richtig verstanden habe, sollte doch auch einfach folgendes funktionieren:

      ^[^0-9]\w{2,14}$

      Also alle deutschen Buchstaben in Groß und Kleinschreibung sind erlaubt. Das muss am Anfang einmal vorkommen!

      Dieser Teil ist aber verletzt, denn [^0-9] erlaubt alles außer Ziffern, also auch Satzzeichen, Klammern, Sternchen, Raute, usw.

      \w{2,14} kombiniert mit einem negative Lookahead auf [0-9] wäre ne Möglichkeit.

      cu,
      Andreas

      --
      Warum nennt sich Andreas hier MudGuard?
      O o ostern ...
      Fachfragen per Mail sind frech, werden ignoriert. Das Forum existiert.