python正则表达式

正则表达式是一种小型的、高度专业化的编程语言, 它内嵌在python中, 通过re模块来实现.

字符

普通字符:大多数字母和字符都会和自身匹配
元字符:. ^ $ * + ? { } [ ] \ | ( )

[ ]

常常用来指定一个字符集,如:[abc] [a-z]

元字符在字符集中不起作用:[abc]表示abc和四个字符的任意一个, $在[]中不表示以…结尾

补集匹配不在区间范围内的字符:[^abc]
注:通常情况^匹配行首, 但是在[]中且放在开头位置, 代表”补集匹配”

^

匹配行首。除非设置MULTILINE标志,它只是匹配字符串的开始。在MULTILINE模式里,它也可以匹配字符串的每个换行。

$

匹配行尾,行尾被定义为要么是字符串尾, 要么是一个换行字符的任何位置.

\

反斜杠加不同的字符表示不同的意义; 也可以取消元字符: [ |
\d 相当于[0-9]
\D 相当于[^0-9]
\s 匹配任何空白字符, 相当于 [\t\n\r\f\v]
\S匹配任何非空白字符, 相当于 [^\t\n\r\f\v]
\w匹配任何数字字母,相当于[a-zA-Z0-9]
\W匹配任何非数字字母,相当于[^a-zA-Z0-9]

重复

*表示前一个字符重复0次或者多次
+表示前一个字符重复1次或者多次
? 表示前一个字符重复0次或者1次
{n} 表示前一个字符重复n次
{m,n} 重复至少m次, 至多n次
{m,} 重复至少m次, 无上限
{0,} 相当于*
{1,}相当于+
{0,1}相当于?

注意: {m,n} 花括号里面不能出现空格, {m, n}这样有空格错误
贪婪匹配和非贪婪匹配:

>>> import re
>>> s = r'\d{2,4}' #贪婪匹配, 以最大次数4匹配
>>> re.findall(s, '111111111111111')
['1111', '1111', '1111', '111']
>>> s = r'\d{2,4}?' #在重复后面加?则为非贪婪匹配,以最小次数2作为匹配
>>> re.findall(s, '111111111111111')
['11', '11', '11', '11', '11', '11', '11']
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值