php正则表达式匹配邮箱的问题解析
程序员文章站
2024-04-04 16:11:05
...
本文介绍下,在用php中的正则表达式匹配邮箱(EMail)时遇到的一个问题,及解决方法。有需要的朋友参考下吧。
php正则表达式匹配邮箱,代码如下: 为何上面的输出为合法呢? {2,10}这里不是只能放2到10位数字吗,但上面的邮箱却超出10位了。 这个正则是能匹配的,匹配到这样这部分 '545454545k@qq.com' 前面部分的1412424545645454不匹配,所以还是合法的。 正确匹配,可以修改为这样: $a='/^([\w\.\_]{2,10})@(\w{1,}).([a-z]{2,4})$/';注意正则:/([\w\.\_]{2,10})@(\w{1,}).([a-z]{2,4})/ 它没有断言,意味着只要字符串中有符合的部分就匹配,因此{2,10}是只能2到10位匹配,但不针对整个字符串只要有一部分符合就匹配了。 要判断一整段字符串是否都匹配就要用断言。如^ $ /^([\w\.\_]{2,10})@(\w{1,}).([a-z]{2,4})$/ 注意头和尾加上了^ $ 完善好的代码,如下: |
下一篇: nginx简单配置动静分离