Hallo,
wie immer, wenn ich mich mit regulären Ausdrücken beschäftige, komme ich leider zu keiner Lösung. Eine Formulareingabe soll mittels preg_match() auf ihre Gültigkeit überprüft werden. In diesem Fall bedeutet gültig:
* Die Eingabe darf nur aus Klein- und Großbuchstaben incl. Ä, ä, Ö, ö, Ü, ü und ß bestehen.
* Die Eingabe muss aus _mindestens_ 3 dieser Zeichen bestehen.
* Wenn die Eingabe mehr als diese 3 Zeichen hat, _dann_ darf auch ein Leerzeichen vorkommen. Aber nur nach den ersten 3 Zeichen.
[1]{3,} ?[A-Za-zÄäÖöÜüß]*$
Unter "ein Leerzeichen" verstehe ich hier "genau ein Leerzeichen". Sonst:
[2]{3,}[A-Za-zÄäÖöÜüß ]*$
Und meine Zusatzfrage: Könnte man den Ausdruck auch so erweitern, dass auch die letzten 3 Zeichen der Eingabe nur aus den Buchstaben bestehen darf? Also Leerzeichen nur, wenn die Eingabe mit mindestens 3 Buchstaben beginnt und mit mindestens 3 Buchstaben aufhört. Ginge das?
[3]{3,} ?[A-Za-zÄäÖöÜüß]{3,}$
Unter "Leerzeichen" verstehe ich hier "genau ein Leerzeichen". Sonst:
[4]{3,}[A-Za-zÄäÖöÜüß ]*[A-Za-zÄäÖöÜüß]{3,}$
Falls du jedoch meintest, dass generell die letzten 3 Zeichen aus [A-Za-zÄäÖöÜüß] sein müssen und damit auch soetwas wie "abcd" erlaubt sein soll, muss es lauten:
^([A-Za-zÄäÖöÜüß]{3,} ?[A-Za-zÄäÖöÜüß]*|[A-Za-zÄäÖöÜüß]*)[A-Za-zÄäÖöÜüß]{3}$
Unter "Leerzeichen" verstehe ich hier "genau ein Leerzeichen". Sonst:
^([A-Za-zÄäÖöÜüß]{3,}[A-Za-zÄäÖöÜüß ]*|[A-Za-zÄäÖöÜüß]*)[A-Za-zÄäÖöÜüß]{3}$
Such dir das passende raus oder beschreib genauer, was du willst. ;)