preg_match
butterbrot
- php
0 Cheatah0 butterbrot0 Cheatah0 butterbrot0 Cheatah0 butterbrot0 GONZO
hi, ich habe vollgendes pattern:
"/[.a-z0-9_-]/i"
so, dieses erlaubt aber noch spaces und umlaute äöü.
Das verstehe ich halt nicht ganz. Ich will ein pattern was a-Z drin hat so wie 0-9 und . _ - und mehr nicht.
wie schreibt man das dann?
thx
butterbrot
Hi,
"/[.a-z0-9_-]/i"
der Punkt braucht in einer Zeichenklasse nicht escaped zu werden, das Minus _sollte_ aber schon, wenn die Möglichkeit besteht, dass jemand mal die Zeichenklasse erweitert. "[a-z0-9_]" in Verbindung mit "/i" ist zu "\w" identisch.
so, dieses erlaubt aber noch spaces und umlaute äöü.
Es erlaubt _alles_, sofern mindestens eines der genannten Zeichen vorkommt. Mehr forderst Du nicht: _eines_ jener Zeichen. Beschäftige Dich anhand der Doku mit den Zeichen für Stringanfang, -ende und Multiplikation eines Patterns; oder aber mit der Negation einer Zeichenklasse.
Cheatah
ok verstehe, das heist, äöu währe flasch, aber sobald ich schreibe äöüa ist es wieder riechtig da ja eins meiner zeichen drin ist.
aber wie verhindere ich das jetzt?
Hi,
ok verstehe, das heist, äöu währe flasch, aber sobald ich schreibe äöüa ist es wieder riechtig da ja eins meiner zeichen drin ist.
korrekt.
aber wie verhindere ich das jetzt?
Was hast Du an meiner Antwort dazu nicht verstanden?
Cheatah
Hi,
ok habe es
japp, richtig. Verbesserung:
"/[1]+$/"
"/[2]+$/"
jetzt weis ich was du mit anfang end ding meinst
Vielleicht solltest Du noch mal das Negieren einer Zeichenklasse nachschlagen; es liefert Dir hier eine (zumindest subjektiv) ganz leicht bessere Lösung.
Cheatah
0-9a-zA-Z_= \w ?
meisnt du mit nigieren so was wie [^äöü]
aber wie kann ich da space unterbringen?
Hallo Butterbrot,
meisnt du mit nigieren so was wie [^äöü]
aber wie kann ich da space unterbringen?
einfach einen Space reinschreiben vielleicht?
CYa
GONZO