re 模块
一、转义符。‘\’
\ 代表转义。在python 中 r 表示取消所有转义。
二、re 模块中的一些 方法。
表达形式 ret = re.findall('正则表达式', '字符串')
1、findall 匹配所有,输出的是一个列表
findall 遇见分组会优先显示分组内容,此时需要在分组前加上?:,比如(?:\d+)
2、search 和group()连用,输出的是第一个匹配到的结果
3、match 从开头匹配,如果开头匹配不到,返回None。
search 遇到分组。
import re ret = re.search('\d+(.\d+)(.\d+)(.\d+)?','1.2.3.4-2*(60+(-40.35/5)-(-4*3))') print(ret.group()) print(ret.group(1)) print(ret.group(2)) print(ret.group(3)) # 可以实现具体拿哪个结果。第一个分组中的内容就在group()中写1
4、sub 替换的。
subn 替换
import re ret = re.sub('\d','H','we112wer4ta') print(ret) # 将所有的数次替换成'H' ret 1 = re.sub(('\d','H','we112wer4ta', 1) print(ret1) # 可以限制替换的次数
import re ret = re.subn('\d+', 'H', 'we135sttwe3t4') print(ret) # 用 subn 替换时, 得到的是一个元祖,前边为替换后的结果,后边是匹配的次数
5、split 切割 以正则表达式所表示的规则进行切割,返回的是一个列表。
与分组相遇后,会保留分组中的内容。
import re ret = re.split('(\d+)','asd12wer33aw1') print(ret) # 以数字进行切割,并保留数字
6、compile (在时间效率上节省)
基本用法:ret = re.complie(正则表达式)
ret 1= ret. search(字符串内容)
print(ret1.group())
7、finditer (在空间上节省,即节约内存)
import re ret = re.finditer('\d','asdq12adas231asfaf2a') for i in ret: print(i.group()) # 可以进行循环遍历,做到节省内存。