应用场景
很多时候我们需要替换某个字符串中的一小段,而且这个字符串有很多,那么这个方法就很实用了。
例子
string1 = 'note_x5F_t_x5F_133_1_,note_x5F_t_x5F_135_1_,note_x5F_t_x5F_136_1_,
现在需要将string1中的重复组合替换为note_x5F_b_x5F_三个数字
解决方法
import re
# 将t替换为b,同时去掉结尾的_1_
string1 = 'note_x5F_t_x5F_133_1_,note_x5F_t_x5F_133_1_,note_x5F_t_x5F_133_1_,'
# 目标的正则表达式
target = r'note_x5F_t_x5F_(\d{3})_1_'
# 结果的正则表达式
result = r'note_x5F_b_x5F_\1'
# 使用sub全部替换
s1 = re.sub(target, result, string1)
print(s1)
# 结果:note_x5F_b_x5F_133,note_x5F_b_x5F_133,note_x5F_b_x5F_133
tips:正则表达式的分组可以通过\1(反斜杠+数字)表示分组内容,比如target中的分组,通过\1复用,那么target中的分组内容就得以保留了。