推荐学习书目
› Learn Python the Hard Way
Python Sites
› PyPI - Python Package Index
› http://diveintopython.org/toc/index.html
› Pocoo
值得关注的项目
› PyPy
› Celery
› Jinja2
› Read the Docs
› gevent
› pyenv
› virtualenv
› Stackless Python
› Beautiful Soup
› 结巴中文分词
› Green Unicorn
› Sentry
› Shovel
› Pyflakes
› pytest
Python 编程
› pep8 Checker
Styles
› PEP 8
› Google Python Style Guide
› Code Style from The Hitchhiker's Guide
bb2018
V2EX  ›  Python

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

  •  
  •   bb2018 · Nov 7, 2017 · 3297 views
    This topic created in 3283 days ago, the information mentioned may be changed or developed.
    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)

    测试了一下。总不是能完美成功。还漏掉或写错了什么?
    16 replies  •  2017-11-13 00:44:32 +08:00
    0ZXYDDu796nVCFxq
    0ZXYDDu796nVCFxq
    Nov 7, 2017 via iPhone
    1
    分开四个来判断啊
    master13
    master13
    Nov 7, 2017❤️3
    2
    通常我们写作文的时候,会划分自然段
    araraloren
    araraloren
    Nov 7, 2017
    3
    请务必使用 re.VERBOSE
    chenyu8674
    chenyu8674
    Nov 7, 2017
    4
    同 1L,为啥不分开来判断?
    dven
    dven
    Nov 7, 2017
    5
    一,最好分开判断
    二,手机号码范围应该是 13[0-9],14[0-9],15[0-9],17[0-9]和 18[0-9],漏掉了很多
    duan602728596
    duan602728596
    Nov 7, 2017 via iPhone
    6
    邮箱可能会有 xxx @ xxx.xxx.xx 的格式
    dven
    dven
    Nov 8, 2017
    7
    @duan602728596
    后面三级四级或者更多都可能,例如某些层级复杂的跨国企业
    dot
    dot
    Nov 8, 2017
    8
    @dven 马上就新增 16[0-9] 和 19[0-9] 了
    qsnow6
    qsnow6
    Nov 8, 2017
    9
    @dven 我 187 开头的手机号就这样被你忽略了
    qsnow6
    qsnow6
    Nov 8, 2017
    10
    看错了
    dven
    dven
    Nov 8, 2017
    11
    @dot 16 号段启用的几率大些,160/168 声讯台应该基本淘汰的差不多了,19 作为国际接入冠字号比较难
    dot
    dot
    Nov 9, 2017 via Android
    12
    @dven 山东电信开卖 199 号段了,这个以前是自动呼台的服务号……国际接入 19 冠字啥情况? 166 也批给联通了。
    dven
    dven
    Nov 10, 2017
    13
    @dot 190,是国际接入号的字头
    dot
    dot
    Nov 11, 2017 via Android
    14
    @dven 国际接入不是 00 么
    dven
    dven
    Nov 13, 2017
    16
    @dot 刚看了下 2017 版编号计划,确实调整出来了,以前国外打来的电话都是显示 000190852xx 这样...
    190、196 和 197 原用于中国电信、中国联通和中国移动的运营商标识码以及智能网电话卡业务,现要求对标识码进行调整,分别调整为 1241 (中国电信)、1243 (中国联通)、1242 (中国移动)
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   2892 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 34ms · UTC 13:20 · PVG 21:20 · LAX 05:20 · JFK 08:20
    ♥ Do have faith in what you're doing.