Python 正则表达式


阅读次数

在Python提供了正则表达式的模块re,这里针对re模块进行一个小总结

re.match

匹配字符串的开头,如果匹配成功,就会返回match 对象,使用group接受打印

test ="qilixiang=jay&shuangjiegun=jay&wanku=panweibo"
m = re.match(r"\w+=\w+&",test)
if m:
print 're.match:',m.group(0)
else:
print '没有匹配到!'

输出结果:re.match: qilixiang=jay&

匹配整个字符串,直到匹配成功,返回一个match,却别re.match

test ="qilixiang=jay&shuangjiegun=jay&wanku=panweibo"
m = re.search(r"\w+=\w+&",test)
if m:
print "re.search:",m.group(0)
else:
print '没有匹配到!'

输出结果:re.search: qilixiang=jay&

re.findall

匹配所有的字符,如果又符合的返回所有匹配到的,并且返回一个list

test ="qilixiang=jay&shuangjiegun=jay&wanku=panweibo"
m = re.findall(r"\w+=\w+&",test)
print "re.findall:",m

输出结果:re.findall: [‘qilixiang=jay&’, ‘shuangjiegun=jay&’]

re.sub

通过正则,匹配进行替换

test ="qilixiang=jay&shuangjiegun=jay&wanku=panweibo"
m = re.sub(r"\w+=\w+&",'%',test,1)
print "re.sub:",m

输出结果:re.sub: %shuangjiegun=jay&wanku=panweibo

re.split

根据正则表达式,对字符串进行分割,结果返回一个list

test ="qilixiang=jay&shuangjiegun=jay&wanku=panweibo"
m = re.split(r"&+",test)
print "re.split:",m

输出结果:re.split: [‘qilixiang=jay’, ‘shuangjiegun=jay’, ‘wanku=panweibo’]

re.compile

对正则表达式,进行编译,生成新的正则表达式,并且可以设定正则的规则

test ="qilixiang=jay&shuangjiegun=jay&wanku=panweibo"
res = re.compile(r"\w+=\w+&")
m = res.findall(test)
print "compile re.findall:",m

输出结果:compile re.findall: [‘qilixiang=jay&’, ‘shuangjiegun=jay&’]


关于正则表达式的讲解参考网图:

re正则表达

">