PHP Regex: Ungültige Zeichen finden

Gast #2129261
Lesenswert?

Ein Name soll nur folgende Zeichen enthalten können:

A-Z a-z 0-9 $ _ - * ~

Also wollte ich eine Regex bauen die testet ob sich unerlaubte Zeichen 
im String befinden:

"[^a-ZA-Z0-9\$\_\-\~\*]"

Leider funktioniert die nicht:
1
echo preg_match("[^a-ZA-Z0-9\$\_\-\~\*]", "aaaAAABBBCC09C~\$_-*");

liefert erwartungsgemäß 0

und
1
echo preg_match("[^a-ZA-Z0-9\$\_\-\~\*]", "aaaAAABBBCC09C~\$_-*§!");

sollte jedoch 1 liefern.

Was ist falsch?
Gast #2129300
Lesenswert?

Wie wär's, mal das Handbuch zu lesen?

http://www.php.net/manual/de/intro.pcre.php

> Die Syntax für Suchmuster, die in diesen Funktionen verwendet werden, ist
> Perl sehr ähnlich. Der Ausdruck muss zwischen Begrenzungszeichen, z.B.
> Schrägstrichen (/), stehen. Als Begrenzungszeichen darf jedes Zeichen
>  verwendet werden, das nicht alphanumerisch ist und das, mit Ausnahme des
>  Backslashs (\) und des Nullzeichens, kein ASCII-Leerzeichen ist.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren