大家看看这个手机,邮箱,座机。QQ 的正规则有问题没有?

2017-11-07 15:27:09 +08:00
 bb2018
p3=re.compile('^0\d{2,3}\d{7,8}$|((/(/d{3}/))|(/d{3}/-))?13[0-9]/d{8}|15[89]/d{8}|17[0-9]/d{8}|18[0-9]/d{8}|[^\._-][\w\.-]+@(?:[A-Za-z0-9]+\.)+[A-Za-z]+|[1-9]\\d{4,10})

okabc=p3.match(tmpstr)

测试了一下。总不是能完美成功。还漏掉或写错了什么?
2505 次点击
所在节点    Python
16 条回复
0ZXYDDu796nVCFxq
2017-11-07 15:36:04 +08:00
分开四个来判断啊
master13
2017-11-07 15:44:29 +08:00
通常我们写作文的时候,会划分自然段
araraloren
2017-11-07 17:12:50 +08:00
请务必使用 re.VERBOSE
chenyu8674
2017-11-07 17:16:23 +08:00
同 1L,为啥不分开来判断?
dven
2017-11-07 21:48:55 +08:00
一,最好分开判断
二,手机号码范围应该是 13[0-9],14[0-9],15[0-9],17[0-9]和 18[0-9],漏掉了很多
duan602728596
2017-11-07 23:07:11 +08:00
邮箱可能会有 xxx @ xxx.xxx.xx 的格式
dven
2017-11-08 05:25:51 +08:00
@duan602728596
后面三级四级或者更多都可能,例如某些层级复杂的跨国企业
dot
2017-11-08 09:10:33 +08:00
@dven 马上就新增 16[0-9] 和 19[0-9] 了
qsnow6
2017-11-08 09:35:17 +08:00
@dven 我 187 开头的手机号就这样被你忽略了
qsnow6
2017-11-08 09:36:01 +08:00
看错了
dven
2017-11-08 23:52:39 +08:00
@dot 16 号段启用的几率大些,160/168 声讯台应该基本淘汰的差不多了,19 作为国际接入冠字号比较难
dot
2017-11-09 00:17:29 +08:00
@dven 山东电信开卖 199 号段了,这个以前是自动呼台的服务号……国际接入 19 冠字啥情况? 166 也批给联通了。
dven
2017-11-10 21:49:47 +08:00
@dot 190,是国际接入号的字头
dot
2017-11-11 11:20:58 +08:00
@dven 国际接入不是 00 么
dot
2017-11-11 11:26:26 +08:00
dven
2017-11-13 00:44:32 +08:00
@dot 刚看了下 2017 版编号计划,确实调整出来了,以前国外打来的电话都是显示 000190852xx 这样...
190、196 和 197 原用于中国电信、中国联通和中国移动的运营商标识码以及智能网电话卡业务,现要求对标识码进行调整,分别调整为 1241 (中国电信)、1243 (中国联通)、1242 (中国移动)

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/404315

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX