python正则表达式判断邮箱域名是否合法

先整理下正则表达式的规则,以下内容大部分来自廖雪峰的python教程。

\d表示一个数字,\w表示一个数字或者一个字母,.表示任意一个字符,*表示任意个字符(包括0个),+表示至少一个字符,?表示0个或者1个字符,{n}表示n个字符,{n,m}表示n至m个字符。

[0-9a-zA-Z\_]匹配一个数字或者一个字母或者下划线,[0-9a-zA-Z\_]+匹配至少一个由一个数字或者一个字母或者下划线组成的字符串,[0-9a-zA-Z\_]{n, }匹配至少n个及以上数量符合要求的字符,[a-zA-Z\_][0-9a-zA-Z\_]*匹配开头字符为一个字母或者下划线,后边跟任意一个数字或者一个字母或者下划线的字符串,也就是python的合法变量名,[a-zA-Z\_][0-9a-zA-Z\_]{0,19}匹配开头字符为一个字母或者下划线,后边最多跟19个字符。

A|B可以匹配A或B, ^表示行的开头,^\d表示必须以数字开头,$表示行的结束,\d$表示必须以数字结束。

正则表达式前缀加r后让python编译器不再转义,当做raw string处理,遇到\n会当做两个字符处理,而不是换行。

一般用法是import re后,使用re.match()方法。

import re
if re.match(r'^\d{3}\-\d{3,8}$', '010-123456'):
    print('right')
else:
    print('wrong')
使用re的split方法识别多种分隔符。


re的括号定义group的分组。


匹配一个合法时间19:28:59,可以使用re.match(r'^(0[0-9]|1[0-9]|2[0-3]|[0-9])\:([0-5][0-9]|[0-9])\:([0-5][0-9]|[0-9])$', '19:28:59')。

课后习题判断一个字符串是否为合法的邮箱地址。

re.match(r'^[0-9a-zA-Z\_\-]+(\.[0-9a-zA-Z\_\-]+)*@[0-9a-zA-Z]+(\.[0-9a-zA-Z]+){1,}$', 'mashijia985.bj@163.com')

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值