Felix Riesterer: PHP Regex für Ordner

Beitrag lesen

Liebe Lilly,

/[1]{5,75}$/

da erlaubst Du den Slash als Bestandteil des bis zu 75 Zeichen langen Datei-/Verzeichnisnamen. Das ist nicht das, was Du willst.

Lass mich mal etwas versuchen (ungetestet!):

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

Der Ausdruck verlangt als erste fünf Zeichen "start". Dann kommt mindestens ein Verzeichnisname (der Inhalt der runden Klammern, also z.B. "start/verzeichnis1") mit dem erlaubten Set an Zeichen, wobei das erste und letzte Zeichen zwingend Kleinbuchstabe oder Ziffer ist. Das Pluszeichen nach der runden Klammer bedeutet "mindestens ein Vorkommen". Damit sollten auch beliebig tief verschachtelte Unterverzeichnisse mit erkannt werden, wie z.B. "start/verzeichnis1/unter-verz-1". Natürlich endet der Ausdruck mit dem Dollarzeichen, das sicherstellt, dass nach dem/den Vorkommen keine weiteren Zeichen mehr folgen.

Liebe Grüße,

Felix Riesterer.


  1. a-z0-9-/ ↩︎