邮箱匹配问题
[a-zA-Z0-9_-]+@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*(\.[a-zA-Z]{2,5})
最后的 (\.[a-zA-Z]{2,5}) 后面为什么不需要 + 号呢?
9
收起
正在回答
2回答
同学,你好。
正则表达式中的“+”号表示:匹配加号(+)之前的正则表达式1次或多次,若在最后一个分组后面加上“+”号,则表示对下图中第二个红色方框所匹配的模式要求出现一次或者多次,这与目前主流的一些邮箱的实际格式不符!
另一方面来说,上图中第一个红色方框的最后有“*”号,这种匹配模式是出现一次或者零次。当出现一次时,最后一个红色方框可以匹配最后的“.com”或“.cn”等这种类型的邮箱结尾;当出现零次时,正好被最后一个红色方框的匹配模式相匹配。
综上所述,最后没有“+”号的原因就是因为前一个匹配模式有“*”号,从而与最后一个没有“+”号的匹配模式形成互补以匹配完整的邮箱格式。
如果我的回答解决了您的疑惑,请采纳!祝学习愉快~~~~
1.Python零基础入门
- 参与学习 人
- 提交作业 2727 份
- 解答问题 8160 个
想要进入Python Web、爬虫、人工智能等高薪领域,你需要掌握本阶段的Python基础知识,课程安排带你高效学习轻松入门,学完你也能听得懂Python工程师的行业梗。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星