扫码关注官方订阅号
正则表达式,([a-z][A-Z][0-9])代表三个字符,但是([a-zA-Z0-9_-])为什么没有长度的限制? abc可以,abcdef也可以?
小伙看你根骨奇佳,潜力无限,来学PHP伐。
原po图片中
用了/[a-zA-Z0-9]@gmail\.com/i去匹配2abcDEF123@gmail.com
/[a-zA-Z0-9]@gmail\.com/i
2abcDEF123@gmail.com
由于正则中没有匹配字符串首尾的^和$
^
$
所以相当于:只匹配到了字符串中的3@gmail.com部分
3@gmail.com
匹配完整的email字符串的正则:
/^[a-z0-9_-]+@[a-z0-9_-]+\.[a-z]+$/i
你那样写是子串匹配啊,匹配整个字符串的话,应该写成/^[a-zA-Z0-9_-]@gmail\.com$/i。
/^[a-zA-Z0-9_-]@gmail\.com$/i
正则中的方括号是指满足方括号中要求的“一个字符”。
[a-z]
[A-Z]
[0-9]
[a-zA-Z0-9_-]
[a-z][A-Z][0-9]
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
扫描下载App
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
用了
/[a-zA-Z0-9]@gmail\.com/i
去匹配2abcDEF123@gmail.com
所以相当于:只匹配到了字符串中的
3@gmail.com
部分/^[a-z0-9_-]+@[a-z0-9_-]+\.[a-z]+$/i
你那样写是子串匹配啊,匹配整个字符串的话,应该写成
/^[a-zA-Z0-9_-]@gmail\.com$/i
。正则中的方括号是指满足方括号中要求的“一个字符”。
[a-z]
是指小写字母中的一个字符[A-Z]
是指大写字母中的一个字符[0-9]
是指数字中的一个字符[a-zA-Z0-9_-]
是指大小写字母、数字、下划线、横线中的一个字符[a-z][A-Z][0-9]
是指三个字符,其中第一个是小写字母,第二个是大写字母,第三个是数字