标签:搜索 port lis 查找 通过 模式 dict 命名 多行
正则表达式模块
常用的正则表达式符号:
. 默认匹配除\n以外的任意一个字符,如果制定falg,DOTALL,则匹配任意字符,包括换行
‘^‘ 匹配字符串的开头
‘$‘ 匹配字符串的结尾
‘*‘ 匹配*号前的字符0次或者多次
‘+‘ 匹配前一个字符1次或多次
‘?‘ 匹配前一个字符1次或0次
‘{n}’ 匹配一个字符n次
‘{n,m}‘ 匹配前一个字符n到m次
‘|’ 匹配左边或右边的字符串
‘()’ 分组匹配
‘\A’ 只从字符串开头匹配
‘\Z‘ 匹配字符串的结尾,和$相同
‘\d‘ 只匹配数字0-9
‘\D‘ 匹配非数字
‘\w‘ 匹配字符数字[a-zA-Z0-9]
‘\W‘ 匹配非字符数字
‘s’ 匹配空白符、\t \n \r 等
‘(?P<name>regx)’ 分组匹配,并且把匹配到的字符串和name进行关联,通过groupdict()进行输出
简单用法:
res = re.match(‘regx‘,‘str‘) -->利用regx对str进行从头开始匹配(注意,match默认就是从头开始匹配)
res.group() -->列出匹配到的字符串
res = re.search(‘regx‘,‘str‘) -->对字符串进行搜索,可以从任意位置开始,匹配到1个,就返回
res = re.findall(‘\d‘,‘1a2b3c4d‘) -->查找所有匹配到的字符串,并用list进行存储
#分组命名匹配
>>> import re
>>> res3 = re.search(‘(?P<id>\d)‘,‘abc1d2e3f‘)
>>> print(res3.groupdict())
{‘id‘: ‘1‘}
>>>
#利用正则对字符串进行分割,然后返回list
>>> re.split(‘\d+‘,‘a1a2b3c4d‘)
[‘a‘, ‘a‘, ‘b‘, ‘c‘, ‘d‘]
#替换
>>> re.sub(‘\d‘,‘|‘,‘a1b2c3d4‘)
‘a|b|c|d|‘
其他匹配模式:
1、忽略大小写: re.I
2、多行模式: re.M
3、点任意匹配模式:re.S,既加上re.S 点就可以匹配任意字符 包括换行符
re模块
标签:搜索 port lis 查找 通过 模式 dict 命名 多行
原文地址:http://www.cnblogs.com/dachenzi/p/6666550.html