替换方法
re库中提供了sub()方法,用于替换文本中的匹配表达式内容。方法的返回值是替换后的文本内容字符串。
1、简单用法
re.sub(pattern,repl,courceText)
顾名思义:第一个参数是正则表达式;第二个参数是替换后的字符;第三个参数是源文本
2、指定替换次数
re.sub(pattern,repl,sourceText,count)
第四个参数指定最大替换次数。第四个参数可以不写,不写意味着默认值为0,表示全部替换
3、例子演示
将日期格式为2021-03-18转换为2021/03/18
import re
text = "2019-11-23"
## 替换所有的非数字的字符,兼容性好
regex = r'\D'
## 全部替换
targetText = re.sub(regex, '/', text)
print('日期:' + targetText)
## 仅替换一次
targetText = re.sub(regex, '/', text, 1)
print('日期:' + targetText)
预编译
re库中提供了compile方法进行预编译
re.compile(regex)
参数就是正则表达式,返回值是Pattern对象预编译的主要目的是为了在使用同一个表达式检索不同的文本,或调用不同的方法以完成不同的操作时,能够复用
例子演示
import re
text = "2019-11-23"
## 替换所有的非数字的字符,兼容性好
regex = r'\D'
## 编译一次
pattern = re.compile(regex)
matchObjs = pattern.findall(text)
print(matchObjs)
targetText = pattern.sub('/', text)
print('日期:' + targetText)