Ankündigung

Einklappen
Keine Ankündigung bisher.

regex für dateinamen

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Andreas
    hat ein Thema erstellt regex für dateinamen.

    regex für dateinamen

    Hallo,

    ich habe folgende Konventionen für eine Zeichenkette:

    Keines dieser Zeichen:
    :/\|<>*?"

    Eine Länge der Zeichenkette von höchstens 31 Zeichen und kein . am Anfang der Zeichenkette (bewusst soll kein .htaccess etc. erstellt werden können)

    Folgendes Regex macht bis auf den \ was es soll:

    PHP-Code:
    <?php
    $dateiname 
    ".abc";
    var_dump(preg_match('/^[^\.\:\/\?\|\<\>\*\?\"][^\.\:\/\?\|\<\>\*\?\"]{0,30}$/i',$dateiname));
    ?>
    Füge ich nun den \ maskiert ein, gibt es einen Fehler:

    PHP-Code:
    <?php
    $dateiname 
    ".abc";
    var_dump(preg_match('/^[^\.\:\/\?\|\<\>\*\?\"\\][^\.\:\/\?\|\<\>\*\?\"\\]{0,30}$/i',$dateiname));
    ?>
    Produziert:
    Compilation failed: missing terminating ] for character class at offset 56

    1. Frage: Warum kommt da ein Fehler. Ich habe den Backslash doch maskiert.

    2. Frage: Kann man diesen Ausdruck kürzer realisieren und wenn ja, wie?

    Gruß Andreas

  • Gast-Avatar
    Ein Gast antwortete
    Keines dieser Zeichen:
    :/\|<>*?"
    Ob das reichen wird ?
    Warum nicht den ganzen Spass umdrehen, und sagen nur a-z0-9_ ...
    Nur eben so ein Gedanke.

    Einen Kommentar schreiben:


  • Chr!s
    antwortet
    1. Frage: Warum kommt da ein Fehler. Ich habe den Backslash doch maskiert.
    Der Fehler bezieht sich auf ein Fehlendes ] - vielleicht hast du ja noch 1 vergessen?
    2. Frage: Kann man diesen Ausdruck kürzer realisieren und wenn ja, wie?
    PHP-Code:
    <?php
    preg_match
    ('#^[^\.\:/\\\|\<\>\*\?]{1,30}\.[^\.\:/\\\|\<\>\*\?]{1,5}$#'$dateiname$matches);
    print_r($matches);
    ?>
    Ich hab mal das.. weiß aber nicht, ob das besser ist..
    Hab beim Regex Dateinamen von 1-30, und Endung von 1-5 Zeichen zugelassen..

    Einen Kommentar schreiben:

Lädt...
X