Gunnar Bittersmann: PHP Regex für Ordner

Beitrag lesen

@@Felix Riesterer

~^start(/[a-z0-9][a-z0-9-]{3, 73}[a-z0-9])+$~

„Sollte insgesamt max. 75 Zeichen haben“ wird damit nicht geprüft.

Und wieso sollten zwischen /[a-z0-9] und [a-z0-9] mindestens 3 Zeichen sein? Damit wäre /abba ausgeschlossen.

Nicht nur, dass da nichts dazwischen stehen muss; wenn nichts dazwischen steht, muss auch das schließende [a-z0-9] nicht da sein, um /a/abba zu erlauben.

Dann werf ich mal in die Runde:
~^start(/[a-z0-9]([a-z0-9-]*[a-z0-9])?)+$~

Bzw. mit (?: statt ( – es soll ja nur geklammert, nicht gemerkt werden.
~^start(?:/[a-z0-9](?:[a-z0-9-]*[a-z0-9])?)+$~

Allerdings wird damit immer noch nicht die Gesamtlänge geprüft. Aber warum sollte man das wollen?

LLAP

--
„Talente finden Lösungen, Genies entdecken Probleme.“ (Hans Krailsheimer)