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?