同时匹配邮箱和电话号码的正则表达式,要想很完美的匹配,挺复杂的。各邮箱提供商的标准都多少有些许差别。如:

163:6-18个字符,可使用字母、数字、下划线,需以字母开头。

gmail:可以使用字母、数字和英文句点,不能使用除字母 (a-z)、数字和英文句号外的其他字符,下划线也是不可以的。

yahoo:4至32个字符(包括字母、数字、下划线、单点),且必须以英文字母开头。

sina:4-16个字符,支持英文小写、数字、下划线,不支持全部为数字或下划线。

qq:由3-18个英文、数字、点、减号、下划线组成。

其他的提供商还有更多格式标准。

而对于电话号码:

国内固定电话城市区号,有三位的,也有四位的。

固定电话号码有七位的,也有八位的。

手机号码包括:

中国移动:134、135、136、137、138、139、147、150、151、152、157、158、159、182、187、188。

中国联通:130、131、132、155、156、185、186

中国电信:133,153,,180,189

如果再加上国外的号码的话,要考虑的更多。

要想都匹配并且都是有效的话,挺麻烦的,这里的匹配不能算完美,但也考略了不少的场景。

如果要写的很完美的话,我觉得要加一些逻辑判断。

比如说,对邮箱和电话号码判断是哪家提供商的。

import re

print 'Please input mail address:',

inputmail=raw_input()

"""

说明:

[^\._-][\w\.-]+@(?:[A-Za-z0-9]+\.)+[A-Za-z]+$匹配邮箱。

综合目前国内常用的邮箱,大概通用的规则包括:

1、[^\._],不能以下划线和句点开头。

2、[\w\.]+,包括字母、数字。而对句点及下划线各提供商有差别,对此有效性不做更严格的判断。

3、@是必须的。

4、(?:[A-Za-z0-9]+\.)+[A-Za-z]+$,@后以xxx.xxx结尾,考虑到多级域名,会有这种情况xxx.xxx.xxx如xxx@yahoo.com.cn

^0\d{2,3}\d{7,8}$|^1[358]\d{9}$|^147\d{8}$匹配电话号码。

只考虑国内的情况,大概通用的规则包括:

1、^0\d{2,3},固定电话区号3-4位数字,以0开头。

2、d{7,8}$,固定电话一般7-8位数字。

3、国内目前的手机号码都是11位数字,三大运营商的号码段基本都在上面列出来了,我们这里除了147的号码的段,其他的都只考虑前两位,

第三位就不考虑了,否则,工作量也很大。前两位包括13*、15*、18*。

"""

p=re.compile('[^\._-][\w\.-]+@(?:[A-Za-z0-9]+\.)+[A-Za-z]+$|^0\d{2,3}\d{7,8}$|^1[358]\d{9}$|^147\d{8}

)

match = p.match(inputmail)

if match:

print match.group()

else:

print 'mail address or phone number is error!'

"""

部分测试结果:

正确的邮箱地址格式:

Please input mail address: biao.wu@gmail.com

biao.wu@gmail.com

Please input mail address: wu_biao@163.com

wu_biao@163.com

Please input mail address: wubiao@yahoo.com.cn

wubiao@yahoo.com.cn

Please input mail address: wu-biao@qq.com

wu-biao@qq.com

Please input mail address: 8888@qq.com

8888@qq.com

错误的邮箱地址格式:

Please input mail address: .biao@163.com

mail address or phone number is error!

Please input mail address: _wubiao@qq.com

mail address or phone number is error!

Please input mail address: -qq@qq.com

mail address or phone number is error!

Please input mail address: biao@@.com

mail address or phone number is error!

Please input mail address: wubiao@qq.com.

mail address or phone number is error!

Please input mail address: wubiao@qq.com.22

mail address or phone number is error!

Please input mail address: wubiao#@163.com

mail address or phone number is error!

正确的电话号码格式:

Please input mail address: 13530315051

13530315051

Please input mail address: 075512345678

075512345678

Please input mail address: 18667676767

18667676767

错误的电话号码格式:

Please input mail address: 135303154

mail address or phone number is error!

Please input mail address: 135303112345

mail address or phone number is error!

Please input mail address: 1234567890

mail address or phone number is error!

"""

linux中匹配邮箱地址,Python正则匹配邮箱和电话号码相关推荐

  1. python正则匹配ip地址_Python正则表达式匹配和提取IP地址

    Linux No.1 IPv4 下面是IPv4的IP正则匹配实例: 简单的匹配给定的字符串是否是ip地址 import re if re.match(r"^(?:[0-9]{1,3}.){3 ...

  2. Python正则匹配 去除文本中的各类emoji表情符号

    我们的文本数据中经常会带有很多表情,如何完整地清除得到高质量的文本供我们利用呢? p = re.compile(u'['u'\U0001F300-\U0001F64F' u'\U0001F680-\U ...

  3. python正则表达式匹配数字或者逗号_python正则表达式去掉数字中的逗号(python正则匹配逗号)...

    分析 数字中经常是3个数字一组,之后跟一个逗号,因此规律为:***,***,*** 正则式[a-z]+,[a-z]? import re sen = "abc,123,456,789,mnp ...

  4. python正则匹配表达式(2)

    上节主要讲解python正则匹配的匹配表达式,而需要调用相应的API才能解决如何匹配的问题. 在python官方文档Regular Expression HOWTO给出了python匹配函数,官方给出 ...

  5. python正则匹配txt特定字符串(有换行)

    python正则匹配txt特定字符串(有换行) 在原txt文件中,我们需要匹配出的字符串为:休闲服务(中间参杂着换行) 直接复制到notebook里进行处理 完整代码 在原txt文件中,我们需要匹配出 ...

  6. 使用Python 正则匹配两个特定字符之间的字符方法

    string = "<KeysViewHDF5 ['Inoisy']>" import redef cut_out(a,b,string):result = re.fi ...

  7. python正则匹配ABAC型词语

    python正则匹配ABAC型词语 前言 代码 前言 本人第一次写博客,欢迎指出不足. 代码 今天做python作业,发现很多文章不能很好地解决匹配ABAC型的词语,例如: patten =r'((. ...

  8. python正则匹配汉字

    python正则匹配汉字的规则为:[\u4e00-\u9fa5] 后面可以加一个+,匹配多个汉字. 例子如下: print(re.findall(r'[\u4e00-\u9fa5]+', '这是测试用 ...

  9. linux重启网卡命令_如何在 Linux 中更改 MAC 地址 | Linux 中国

    在向你展示如何在 Linux 中更改 Mac 地址之前,让我们首先讨论为什么要更改它.-- Dimitrios Savvopoulos 在向你展示如何在 Linux 中更改 MAC 地址之前,让我们首 ...

  10. Linux中DNS服务器地址查询命令nslookup使用教程

    这篇文章主要介绍了Linux中DNS服务器地址查询命令nslookup使用教程,是Linux服务器运维的必备知识,需要的朋友可以参考下 nslookup 程序是DNS 服务的主要诊断工具,它提供了执行 ...

最新文章

  1. python所有插件框架_Python中实现简单的插件框架
  2. CentOS 编译安装python3.6
  3. 一台电脑同时启动多个java_如何在一台同时登录多个微信?
  4. Android 自动化测试——Monkey测试
  5. 记一起因证书引发的支付宝支付异步通知接收不到的事故
  6. idea2020新建一个jsp页面_有关idea2019版的jsp配置小教程
  7. paip.提升效率--数据绑定到table原理和流程Angular js jquery实现
  8. 【图像去噪】基于matlab邻域+中值滤波图像去噪【含Matlab源码 961期】
  9. 性能监视器 Performance Monitor-对SQLSERVER进行性能监控
  10. 善用佳软:高效能人士的软件应用之道
  11. php调java_php调java接口
  12. 汉字编码:区位码、国标码、机内码
  13. AI车牌识别涉及哪些技术?它是如何改变行业的?
  14. java如何开发国内手机短信验证码接口
  15. struct构造函数 c++
  16. android音乐播放器flac,无损高保真音乐播放器app
  17. vs2008gridview自带删除功能代码怎么实现
  18. 线性卷积和循环卷积(圆周卷积)
  19. 微信小程序 界面禁止下拉 左右滑动_微信 iOS 版更新,带来了这些新功能
  20. catchlog是什么软件_如何处理异常? catch Exception OR catch Throwable

热门文章

  1. 树莓派4支持多大tf卡_树莓派入门指南(Raspberry Pi)
  2. 南洋理工大学“网络安全高级研修班”寒假访学记
  3. 高德地图php接口,简单使用高德地图开放平台API
  4. 北京16个山水美景| 清明小长假走起吧!
  5. 今日开放式基金净值表
  6. 20日均线操作系统法
  7. 读DL论文心得之RCNN
  8. win10系统中如何查看wifi密码
  9. Neutron的Port详解
  10. python数据分析培训南京_基于Python的南京二手房数据可视化分析