Ich habe einen Regulären Ausdruck, um damit bei einer Usereingabe (genauer ein Dateiname) zu prüfen, ob wirklich auch nur A-Z, a-z, der Unterstrich _ , ein Hochkomma ' oder ein Strich - enthalten ist.
Wenn ich diesen aber mit der Funktion preg_match teste, wird mir bei allen Strings true (1) zurückgegeben:
Die RegExp muss jedoch stimmen, denn wenn ich sie auf RegExr: Online Regular Expression Testing Tool an beiden Strings teste, werden die richtigen Gruppen markiert.
Woran kann das liegen?
Wenn ich diesen aber mit der Funktion preg_match teste, wird mir bei allen Strings true (1) zurückgegeben:
PHP:
$allowed_chars_regex = "/[a-zA-Z_\-']+/" ;
#=> Hier sollte false herauskommen, es kommt jedoch true
echo (preg_match($allowed_chars_regex, "öl%&/"));
#=> Hier kommt richtigerweise true heraus
echo (preg_match($allowed_chars_regex, "rollo"));
Die RegExp muss jedoch stimmen, denn wenn ich sie auf RegExr: Online Regular Expression Testing Tool an beiden Strings teste, werden die richtigen Gruppen markiert.
Woran kann das liegen?