您的位置:首页 > 编程语言 > Python开发

Python正则表达式

2016-06-09 21:06 429 查看
1.常用符号

.匹配任意字符
*匹配前一个字符0次或无限次
?匹配前一个字符0次或1次
.*贪心算法
.*?非贪心算法
()括号内的数据作为结果返回
.的用法

import re
a = 'xy123'
b = re.findall('x.',a)
print b#['xy']


*的用法

import re
a = 'xy123'
b = re.findall('x*',a)
print b#['x', '', '', '', '', '']


?的用法

import re
a = 'xy123'
b = re.findall('x.*?',a)
print b#['x']


.*的用法

import re
a = 'xy123xy456xy789xy987xy654xy321'
print re.findall('xy.*xy', a)   #['xy123xy456xy789xy987xy654xy']
print re.findall('xy.*?xy', a)  #['xy123xy', 'xy789xy', 'xy654xy']


()的用法

import re
a = 'xy123xy456xy789xy987xy654xy321'
print re.findall('xy.*?xy', a)#['xy123xy', 'xy789xy', 'xy654xy']
print re.findall('xy(.*?)xy', a)#['123', '789', '654']


re.S的用法

import re
a = '''xy123'
xy456xy789xy987xy654xy321'''
print re.findall('xy.*?xy', a)#['xy456xy', 'xy987xy']
print re.findall('xy(.*?)xy', a)#['456', '987']

print re.findall('xy.*?xy', a, re.S)#["xy123'\n    xy", 'xy789xy', 'xy654xy']
print re.findall('xy(.*?)xy', a, re.S)#["123'\n    ", '789', '654']


search用法

import re
a = 'xy123xy456xy789xy987'
print re.search('xy(.*?)xy456xy(.*?)xy', a).group()#xy123xy456xy789xy
print re.search('xy(.*?)xy456xy(.*?)xy', a).group(1)#123
print re.search('xy(.*?)xy456xy(.*?)xy', a).group(2)#789

print re.findall('xy(.*?)xy456xy(.*?)xy', a)[0][0]#123


sub用法

import re
a = 'xy123xy'
print re.sub('xy(.*?)xy','XY%dXY'%321, a)#XY321XY


匹配数字

import re
a = 'xy123xy'
print re.findall('(\d+)', a)#['123']
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: