python-re模块

#正则元字符:^ $ . * + ? [] {} () \ | 
#()分组
import
re print(re.search('(?P<name>[a-z]+)(?P<age>\d+)',"asd123fgh456jkl789").group('name'))
re.search() #懒惰模式 只返回第一个匹配的数据,再调用group()方法得到匹配的字符串
re.findall() #贪婪模式,但会所有满足匹配条件的结果,放到列表中。

re.match() #从开始位置匹配,懒惰模式
re.split() #字符串分割为列表
re.sub() #替换
re.subn() #替换
re.finditer() #匹配到的数据放在迭代器对象,适用于大批量数据的匹配,
print(re.split('[ |]','hello iam|matt')) #将字符串按空格或管道符分割
print(re.split('[ab]','asdabcd')) #按a或b分割
print(re.sub('a','A','aaaaaa')) #a替换为A
print(re.sub('a','A','aaaaaa',5)) #a替换为A,替换5次
print(re.subn('a','A','aaaaaa')) #并返回匹配次数
rule = re.compile('\d') #编译规则
print(rule.findall("12df34gh5h"))

print(re.findall('www\.(baidu|163|sina)\.com','d3d3d3f45g5gwww.baidu.com2ftg5hth6he')) #优先只返回分组中数据
print(re.findall('www\.(?:baidu|163|sina)\.com','d3d3d3f45g5gwww.baidu.com2ftg5hth6he')) #取消优先级,返回所有匹配数据


猜你喜欢

转载自www.cnblogs.com/benchdog/p/9094004.html