php - PHP 正则表达式中的 "range out of order in character class"?

标签 php regex

我试图完成这项工作一段时间,但徒劳无功。 我想创建一个 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/

相关文章:

regex - 如何在 Elixir 中使用 W3C 电子邮件正则表达式

php - 在获取 PHP 正则表达式匹配时遇到问题

php - 无法使用带有 mysql 和 php 7 的 docker-compose 连接到数据库

php - 如何遍历 HTML5 多文件上传?

python - 正则表达式以匹配 YAML 中的键

javascript - 正则表达式匹配不带引号的字符串,但不匹配 CSV 中的数字

python - 正则表达式用括号前的空格替换点

php - 检查关联是否存在而不捕获 Doctrine2 中的异常?

php - Wordpress 页面不显示样式表

JavaScript AJAX 传递多个变量的困惑