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

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.