正则
re模块使用正则:
1.findall:
满足所有匹配的都放入列表中
a = re.findall('[a-z]+','dasd7887')
满足匹配的放入到列表中 print(a)
2.search:
从前往后找,找到一个就返回一个,如果需要用的话,需要调用group方法。如果没有找到就返回Neno,返回None调用group方法的话,就会报错
a = re.search('a','aabbffcca') print(a.group())
3.match:
根据正则从开始找,如果找到就返回变量,也是需要用group方法才能用,如果没有找到就返回None,没有找到的调用group方法就会报错
ret = re.match('[a-z]+','avb submnf') if ret: print(ret.group()) 输出结果: avb
4.split:切割
ret= re.split('[ab]','abcd')
先按a进行切割,得到'',和'bcd',在按b进行切割得到。'','','cd' print(ret) 输出结果:['','','cd']
5.sub:替换
ret = re.sub('\d','h','122ddd23',2)
把数字替换为h,替换2次 print(ret) 输出结果:hh2dddd23
6.subn:替换,返回的是一个元祖(还会返回总共替换了多少次)
ret =re.sunb('\d','h','12345hh88')
将数字替换为h,返回的是一个元祖(还会返回总共替换了多少次) print(ret)
7.compile:将正则编译成一个正则表达式对象,谁要用,可以直接那这个对象调用方法。
用于正则表达式比较长,而且用的比较多的时候可以用到
a = re.compile('\d{3}') ret = a.search('ad123asdsa') print(ret.group())
8.finditer:返回的是一个迭代器
ret =re.finditer('\d','123fdfdf') print(ret) 这里返回的是一个迭代器 print(next(ret),group()) 拿到第一个 print(next(ret).group()) 拿到第二个 for i in ret: print(i.group()) print(i.group() for i in ret) 那剩下的全部