Python正则表达式

一、python api

函数描述
re.match(pattern, string, flags=0)尝试从字符串的起始位置匹配一个模式,如果不是起始位置匹配成功的话,match()就返回none
re.search(pattern, string, flags=0)扫描整个字符串并返回第一个成功的匹配
re.sub(pattern, repl, string, count=0)用于替换字符串中的匹配项,repl : 替换的字符串,也可为一个函数
re.compile(pattern[, flags])用于编译正则表达式,生成一个正则表达式( Pattern )对象,供 match() 和 search() 这两个函数使用
findall(string[, pos[, endpos]])在字符串中找到正则表达式所匹配的所有子串,并返回一个列表,如果没有找到匹配的,则返回空列表
re.split(pattern, string[, maxsplit=0, flags=0])能够匹配的子串将字符串分割后返回列表
二、修饰符总结
修饰符描述
re.I使匹配对大小写不敏感
re.L做本地化识别(locale-aware)匹配
re.M多行匹配,影响 ^ 和 $
re.S使 . 匹配包括换行在内的所有字符
re.U根据Unicode字符集解析字符。这个标志影响 \w, \W, \b, \B.
re.X该标志通过给予你更灵活的格式以便你将正则表达式写得更易于理解。d
三、常用的正则
1、匹配email地址:
[\w!#$%&'*+/=?^_`{|}~-]+(?:\.[\w!#$%&'*+/=?^_`{|}~-]+)*@(?:[\w](?:[\w-]*[\w])?\.)+[\w](?:[\w-]*[\w])?

2、匹配网址URL:
[a-zA-z]+://[^\s]*

3、匹配18位身份证号:
^(\d{6})(\d{4})(\d{2})(\d{2})(\d{3})([0-9]|X)$

4、匹配年月日格式:
([0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]{1}|[0-9]{1}[1-9][0-9]{2}|[1-9][0-9]{3})-(((0[13578]|1[02])-(0[1-9]|[12][0-9]|3[01]))|((0[469]|11)-(0[1-9]|[12][0-9]|30))|(02-(0[1-9]|[1][0-9]|2[0-8])))

5、匹配整数:
^-?[1-9]\d*$

6、匹配正整数:
^[1-9]\d*$

7、匹配负整数:
^-[1-9]\d*$

8、匹配空白行:
\n\s*\r

设定一个用户命名的规则, 让用户名包含字符,数字,下划线和连字符,以及限制字符的个数,好让名字看起来没那么丑. 我们使用以下正则表达式来验证一个用户名:

Regular expression

详细:

https://www.jianshu.com/p/7fa6fe0b39af

https://www.cnblogs.com/huxi/archive/2010/07/04/1771073.html

https://juejin.im/entry/59a651116fb9a024844938b5

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值