繁体   English   中英

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

[英]“range out of order in character class” in PHP regex?

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

这是我的正则表达式

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

我收到以下错误警告:preg_match() [function.preg-match]: Compilation failed: range out of order in character class at offset 17 in myfile.php on line 8

有什么帮助吗?

-需要转义,或者放在[...]列表的开头/结尾:

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

如果不这样做, -被解释为范围运算符,如果[xy] x > y ,则会出现该错误。

当我收到此警告时,我在模式末尾使用了/u 去尝试一下。 这意味着Ungreedy 模式

$pattern = "^([ `anything` ])$/u";

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM