PHP正则表达式中"字符类中的范围乱序"?

zed*_*zed 12 php regex

我试图让这项工作暂时但却徒劳无功.我想创建一个php正则表达式来检查一个字符串是否至少包含一个数字,并且至少有一个符号(_- + =*&)

这是我的正则表达式

 $result = preg_match('/^(?=.*\d)(?=.*[_-+=*&]).{3,}$/',$pass);
Run Code Online (Sandbox Code Playgroud)

我收到以下错误警告:preg_match()[function.preg-match]:编译失败:第8行myfile.php中偏移量为17的字符类中的范围乱序

任何帮助?

Ali*_*xel 24

-需要进行转义,或放置在开始/结束[...]列表:

$result = preg_match('/^(?=.*\d)(?=.*[-_+=*&]).{3,}$/',$pass);
Run Code Online (Sandbox Code Playgroud)

如果不这样做,-将被解释为范围运算符,如果x > y[x-y]你得到这个错误.