linux中匹配邮箱地址,Python正则匹配邮箱和电话号码
同时匹配邮箱和电话号码的正则表达式,要想很完美的匹配,挺复杂的。各邮箱提供商的标准都多少有些许差别。如:
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正则匹配邮箱和电话号码相关推荐
- python正则匹配ip地址_Python正则表达式匹配和提取IP地址
Linux No.1 IPv4 下面是IPv4的IP正则匹配实例: 简单的匹配给定的字符串是否是ip地址 import re if re.match(r"^(?:[0-9]{1,3}.){3 ...
- Python正则匹配 去除文本中的各类emoji表情符号
我们的文本数据中经常会带有很多表情,如何完整地清除得到高质量的文本供我们利用呢? p = re.compile(u'['u'\U0001F300-\U0001F64F' u'\U0001F680-\U ...
- python正则表达式匹配数字或者逗号_python正则表达式去掉数字中的逗号(python正则匹配逗号)...
分析 数字中经常是3个数字一组,之后跟一个逗号,因此规律为:***,***,*** 正则式[a-z]+,[a-z]? import re sen = "abc,123,456,789,mnp ...
- python正则匹配表达式(2)
上节主要讲解python正则匹配的匹配表达式,而需要调用相应的API才能解决如何匹配的问题. 在python官方文档Regular Expression HOWTO给出了python匹配函数,官方给出 ...
- python正则匹配txt特定字符串(有换行)
python正则匹配txt特定字符串(有换行) 在原txt文件中,我们需要匹配出的字符串为:休闲服务(中间参杂着换行) 直接复制到notebook里进行处理 完整代码 在原txt文件中,我们需要匹配出 ...
- 使用Python 正则匹配两个特定字符之间的字符方法
string = "<KeysViewHDF5 ['Inoisy']>" import redef cut_out(a,b,string):result = re.fi ...
- python正则匹配ABAC型词语
python正则匹配ABAC型词语 前言 代码 前言 本人第一次写博客,欢迎指出不足. 代码 今天做python作业,发现很多文章不能很好地解决匹配ABAC型的词语,例如: patten =r'((. ...
- python正则匹配汉字
python正则匹配汉字的规则为:[\u4e00-\u9fa5] 后面可以加一个+,匹配多个汉字. 例子如下: print(re.findall(r'[\u4e00-\u9fa5]+', '这是测试用 ...
- linux重启网卡命令_如何在 Linux 中更改 MAC 地址 | Linux 中国
在向你展示如何在 Linux 中更改 Mac 地址之前,让我们首先讨论为什么要更改它.-- Dimitrios Savvopoulos 在向你展示如何在 Linux 中更改 MAC 地址之前,让我们首 ...
- Linux中DNS服务器地址查询命令nslookup使用教程
这篇文章主要介绍了Linux中DNS服务器地址查询命令nslookup使用教程,是Linux服务器运维的必备知识,需要的朋友可以参考下 nslookup 程序是DNS 服务的主要诊断工具,它提供了执行 ...
最新文章
- python所有插件框架_Python中实现简单的插件框架
- CentOS 编译安装python3.6
- 一台电脑同时启动多个java_如何在一台同时登录多个微信?
- Android 自动化测试——Monkey测试
- 记一起因证书引发的支付宝支付异步通知接收不到的事故
- idea2020新建一个jsp页面_有关idea2019版的jsp配置小教程
- paip.提升效率--数据绑定到table原理和流程Angular js jquery实现
- 【图像去噪】基于matlab邻域+中值滤波图像去噪【含Matlab源码 961期】
- 性能监视器 Performance Monitor-对SQLSERVER进行性能监控
- 善用佳软:高效能人士的软件应用之道
- php调java_php调java接口
- 汉字编码:区位码、国标码、机内码
- AI车牌识别涉及哪些技术?它是如何改变行业的?
- java如何开发国内手机短信验证码接口
- struct构造函数 c++
- android音乐播放器flac,无损高保真音乐播放器app
- vs2008gridview自带删除功能代码怎么实现
- 线性卷积和循环卷积(圆周卷积)
- 微信小程序 界面禁止下拉 左右滑动_微信 iOS 版更新,带来了这些新功能
- catchlog是什么软件_如何处理异常? catch Exception OR catch Throwable