我试图让这项工作工作一段时间,但徒劳无功。我想创建一个 php 正则表达式来检查字符串是否至少有一个数字和 ( _-+=*&) 中的至少一个符号
这是我的正则表达式
$result = preg_match('/^(?=.*'d)(?=.*[_-+=*&]).{3,}$/',$pass);
我收到以下错误 警告:preg_match() [function.preg-match]:编译失败:myfile 中偏移量为 17 处字符类的范围不按顺序排列.php在第 8 行
有什么帮助吗?
-
需要转义,或放在[...]
列表的开头/结尾:
$result = preg_match('/^(?=.*'d)(?=.*[-_+=*&]).{3,}$/',$pass);
如果不这样做,-
将被解释为范围运算符,如果x > y
[x-y]
,则会收到该错误。
当我收到此警告时,我在模式的末尾使用了/u
。试试吧。这意味着不贪婪的模式
$pattern = "^([ `anything` ])$/u";