正则

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) 那剩下的全部

 

posted @ 2018-11-14 13:30  明朗学习之路  阅读(174)  评论(0编辑  收藏  举报