php regex需要检查字符串是否至少有一个大写字符,一个小写字母和一个数字或符号

geo*_*310 3 php regex

嗨,我需要使用php的pregmatch来检查字符串是否有效.为了有效,字符串需要至少有一个大写字符,至少一个小写字符,然后至少有一个符号或数字

谢谢

ste*_*ema 6

您可以通过使用前瞻来实现这一目标

^(?=.*[a-z])(?=.*[A-Z])(?=.*[\d,.;:]).+$
Run Code Online (Sandbox Code Playgroud)

在Regexr上看到它

前瞻是零宽度断言,这意味着它与字符不匹配,如果声明的断言为真,它将从其位置进行检查.所有断言都是单独评估的,因此字符可以按任何顺序排列.

^ 匹配字符串的开头

(?=.*[a-z]) 检查字符串中的某个位置是否为小写字符

(?=.*[A-Z]) 检查字符串中的某个位置是否为大写字符

(?=.*[\d,.;:]) 检查字符串中的某个位置是否为数字或其他字符之一,添加所需的字符.

.+$ 匹配字符串直到字符串的结尾

只要其中一个断言失败,完整的正则表达式就会失败.