在Python使用正则表达式需要使用re(regular exprssion)模块,使用正则表达式的难点就在于如何写好p=re.compile(r' 正则表达式')的内容。

下面是在Python中使用正则表达式同时匹配邮箱和电话并进行简单的分类的代码,本文只进行了简单的分类,读者可使用补充部分提供的信息进行详细分类。

import re

p=re.compile(r'^[\w\d]+[\d\w\_\.]+@([\d\w]+)\.([\d\w]+)(?:\.[\d\w]+)?$|^(?:\+86)?(\d{3})\d{8}$|^(?:\+86)?(0\d{2,3})\d{7,8}$')

def mail_or_phone(p,s):

m=p.match(s)

if m==None:

print 'mail address or phone number is wrong'

else:

if m.group(1)!=None:

if m.group(1)=='vip':

print 'It is %s mail,the address is %s' %(m.group(2),m.group())

else:

print 'It is %s mail,the address is %s' %(m.group(1),m.group())

else:

if m.group(3)!=None:

print 'It is mobilephone number,the number is %s' %m.group()

else:

print 'It is telephone number,the number is %s' %m.group()

if __name__=='__main__':

s=[]

s.append('tju_123@163.com')

s.append('123@tju.edu.cn')

s.append('123456@vip.qq.com')

s.append('+8615822123456')

s.append('0228612345')

for i in range(len(s)):

mail_or_phone(p,s[i])

结果如下:

It is 163 mail,the address is tju_123@163.com

It is tju mail,the address is 123@tju.edu.cn

It is qq mail,the address is 123456@vip.qq.com

It is mobilephone number,the number is +8615822123456

It is telephone number,the number is 0228612345

该代码中正则表达式分为三部分:

(1) ^[\w\d]+[\d\w\_\.]+@([\d\w]+)\.([\d\w]+)(?:\.[\d\w]+)?$ 这部分用于匹配邮箱

(2) ^(?:\+86)?(\d{3})\d{8}$ 这部分用于匹配移动电话

(2) ^(?:\+86)?(0\d{2,3})\d{7,8}$ 这部分用于匹配固定电话

邮箱中@后面有的有一个‘.',有的有两个‘.’,而且有的@后面紧挨着的是‘vip’,而不是‘qq’等邮箱标识

移动电话和固定电话在来电显示中经常出现‘+86’,所以匹配过程中要注意这一点

正则表达式中使用了()进行分组,然后可以通过group(i)来获得相应分组的信息来进行判断

补充:

1.常用的邮箱:

QQ: @qq.com或者@foxmail.com

网易: @163.com、@126.com、@yeah.net

google: @gmail.com

新浪: @sina.com、@sina.cn

搜狐: @sohu.com

高校: @tju.edu.cn等

2.中国三大运营商手机号段

移动:134、135、136、137、138、139、147、150、152、154、157、158、159、182、183、187、188

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

电信:133、153、180、189

python匹配邮箱_在Python中使用正则表达式同时匹配邮箱和电话并进行简单的分类...相关推荐

  1. python 时间序列预测_使用Python进行动手时间序列预测

    python 时间序列预测 Time series analysis is the endeavor of extracting meaningful summary and statistical ...

  2. python 概率分布模型_使用python的概率模型进行公司估值

    python 概率分布模型 Note from Towards Data Science's editors: While we allow independent authors to publis ...

  3. python爬取qq邮箱_使用Python模拟登录QQ邮箱获取QQ好友列表

    最近因开发项目的需要,有一个需求,就是很多SNS网站都有的通过 Email地址 导入好友列表,不过这次要导入的不是Email 列表,而是QQ的好友列表. 实现方式: 通过google一搜,实现的方式大 ...

  4. python库名_在python存储库名称和包名称中使用连字符/破折号 - python

    我试图使我的git仓库pip可安装.为此,我正在重组仓库以遵循正确的约定.通过查看其他存储库,我的理解是,我应该将所有源代码放在与存储库名称相同的软件包中.例如.如果我的存储库称为myrepo,则源代 ...

  5. python selenium 下拉列表_从下拉列表中选择python selenium选项

    我试图使用下面的代码使用selenium(python)从网页上的下拉列表中选择一个选项.在from selenium import webdriver from selenium.webdriver ...

  6. python 语料标注_在python中怎么标记文本?

    要运行下面的python程序,必须在系统中安装(NLTK)自然语言工具包. NLTK模块是一个庞大的工具包,旨在帮助您使用整个自然语言处理(NLP)方法. 要安装NLTK,请在终端中运行以下命令.su ...

  7. python pipeline框架_介绍Python的Django框架中的静态资源管理器django-pipeline

    django-pipeline 是一个 Django 下非常方便的静态资源管理 app,尤其是 1.2 版本之后,利用 django-staticfiles 的collectstatic 命令,在开发 ...

  8. python中立方表示_在Python中表示一个对象的方法

    在 Python 中一切都是对象.如果要在 Python 中表示一个对象,除了定义 class 外还有哪些方式呢?我们今天就来盘点一下. 0x00 dict 字典或映射存储 KV 键值对,它对查找.插 ...

  9. python临床数据_从临床试验中获取数据

    我正在开发一个小Python函数来从clinicalTrials.gov中获取数据.从每个研究记录中,我想从中找出研究的目标条件.例如,对于this研究记录,我需要以下内容:conditions = ...

  10. python注入进程_向进程中注入Python代码

    我想把Python代码注入到一个进程中,当它注入时,它似乎会使我的进程崩溃.我没有在我自己的程序中得到任何错误,但目标进程停止工作.被调用的非托管api没有给我任何错误,并且似乎已经正确地执行了它们的 ...

最新文章

  1. 轻量函数式 JavaScript:八、列表操作
  2. python3 time模块与datetime模块
  3. 使用 SAP UI5 消费 OData 服务的一些常见错误和解决方案
  4. formidable ajax上传,nodejs+express+ajax实现图片上传及显示
  5. Java 画精美图形
  6. iOS中的KeyChain的用途
  7. 走向.NET架构设计—第四章—业务层分层架构(中篇)
  8. python中else与if的匹配原则是什么_if-else语句中,if和else的配对原则各是什么
  9. linux孤儿进程组深入理解,unix基础---有关于孤儿进程组和终端会话的理解-------值得一看!!!...
  10. 20145322何志威 Exp7 网络欺诈技术防范
  11. 计算机显卡型号中数字含义详解,显卡型号中字母和数字所代表的含义
  12. 计算机体验分数,Windows 8 计算机体验评分(体验指数)在哪
  13. 限制不互素对的排列(构造)
  14. STL queue:男孩被绑架了!
  15. html 开关窗效果,逼真的HTML5+CSS3窗帘拉开收起动画特效
  16. #读书笔记#《富爸爸窮爸爸》 | Rich Dad Poor Dad 罗伯特.清崎 Robert Kiyosaki
  17. 使用scratch结合Dsbot机器人做一个抢答器!
  18. nginx.pid-nginx: [error] open() /var/run/nginx.pid failed (2: No such file or direc
  19. 佩尔(Pell)方程最小正整数解
  20. dlg.DoModal()介绍

热门文章

  1. java基于POI批量插入图片到word
  2. 美式英语 [t] 的发音
  3. 算法学习之贪心法(会议安排)
  4. 数据之美----雪球网股票组合分析
  5. 我的脚本-一键禁用启用笔记本自带键盘
  6. android 2k屏分辨率是多少,手机2k屏幕是什么意思 2k屏幕几大问题
  7. n1怎么进入线刷模式_中国移动N1 M821线刷刷机教程_移动M821线刷包_救砖包
  8. Android MTP 转载http://www.cnblogs.com/skywang12345/p/3474206.html
  9. html给文字添加阴影效果,如何设置样式之添加文字阴影、边框阴影或者添加自己的CSS...
  10. photoshop技巧分享:psd格式批量转换jpg格式一键完成