两个preg_match函数,区别于什么

时间:2013-10-28 13:20:09

标签: php regex preg-match

有人能够向我解释下面两个函数之间的区别(如果有的话)是什么?我一直在使用第一个来验证密码。我做了一点阅读,现在告诉我第二个功能完全一样吗?

preg_match("/^(?=.*[0-9])(?=.*[a-z])(?=.*[A-Z]).{6,}$/", $string);

改写为:

preg_match("/[a-zA-Z0-9]{6,}/", $string);

感谢任何解释。

1 个答案:

答案 0 :(得分:2)

/^(?=.*[0-9])(?=.*[a-z])(?=.*[A-Z]).{6,}$/ - 包含至少一位数,大写和小写

的6个字符

/[a-zA-Z0-9]{6,}/ - 6个或更多字符的子字符串,必须为大写,小写或数字

  • aA1___仅与第一个匹配
  • 111111仅与第二个匹配

请注意,强制执行更强的规则可能会导致密码更弱 - xkcd