我试图让这项工作暂时但却徒劳无功。 我想创建一个php正则表达式来检查一个字符串是否至少包含一个数字,并且至少有一个符号(_- + = *&)
这是我的正则表达式
$result = preg_match('/^(?=.*\d)(?=.*[_-+=*&]).{3,}$/',$pass);
我收到以下错误 警告:preg_match()[function.preg-match]:编译失败:第8行myfile.php中偏移量为17的字符类中的乱序范围
任何帮助?
答案 0 :(得分:24)
-
需要转义,或放在[...]
列表的开头/结尾处:
$result = preg_match('/^(?=.*\d)(?=.*[-_+=*&]).{3,}$/',$pass);
如果不这样做,-
将被解释为范围运算符,而x > y
中的[x-y]
则会出现该错误。
答案 1 :(得分:0)
收到此警告时,我在模式末尾使用了/u
。就试一试吧。
这表示不满意模式
$pattern = "^([ `anything` ])$/u";