前面的问题解释了一些类似的问题,但我无法实现我的问题的解决方案。
我尝试为以下内容创建模式:1.大人物2.小字3.编号4.特种炭
所有这些条件都必须包含我的字符串。我可以用检查条件1,2,3
[0-9A-Za-z]
我可以用检查条件编号4(特殊字符)
[[:punct:]]
但我无法让它们的组合发挥作用:
$p = "aAbB4#"; //correct string
if(!preg_match('/([0-9A-Za-z]{4,50}|[[:punct:]])/',$p)){
$p = "Not all credentinals are correct";
}
我怎么能那样做?
对此使用正向前瞻匹配,即将每个字符放入(?=)
组:
if (!preg_match('/^(?=.*[A-Z])(?=.*[a-z])(?=.*'d)(?=.*[[:punct:]]).{4,50}$/', $p)) {
...
}