我试图完成这项工作一段时间,但徒劳无功。 我想创建一个 php 正则表达式来检查字符串是否至少有一个数字和至少一个符号 ( _-+=*& )
这是我的正则表达式
$result = preg_match('/^(?=.*\d)(?=.*[_-+=*&]).{3,}$/',$pass);
我收到以下错误 警告:preg_match() [function.preg-match]:编译失败:第 8 行 myfile.php 中偏移量 17 处字符类中的范围乱序
有什么帮助吗?
最佳答案
-
需要转义,或者放置在 [...]
列表的开头/结尾:
$result = preg_match('/^(?=.*\d)(?=.*[-_+=*&]).{3,}$/',$pass);
如果不这样做,-
将被解释为范围运算符,如果 x > y
在 [x-y]
中,您会收到该错误.
关于php - PHP 正则表达式中的 "range out of order in character class"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10184369/