我有以下问题:
字符串包含遵循此模式的内容:
aaaaaaaaaaaaaaaaaaaaaaXXXXXXXXXCCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaXXXXXXXXXCCaaaaaaaaaaXXXXXXXXXCCaaaaaaaaaaaaXXXXXXXXXCCaaaaaaaaaaaaaaaaXXXXXXXXXCCaaXXXXXXXXXCCaXXXXXXXXXCCaaaaaaaaaaaaaaaaaaaaXXXXXXXXXCC
我需要替换XXXXXXXXXCC
,但我唯一知道的是CC
的位置,因为XXXXXXXXX
是动态且随机的。
有什么想法吗?
答案 0 :(得分:1)
使用re.sub
功能可以执行此操作
import re
data = 'aaaaaaaaaaaaaaaaaaaaaaXXXXXXXXXCCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaXXXXXXXXXCCaaaaa aaaaXXXXXXXXXCCaaaaaaaaaaaaXXXXXXXXXCCaaaaaaaaaaaaaaaaXXXXXXXXXCCaaXXXXXXXXXCCaXXXXXXXXXCCaaaaaaaaaaaaaaaaaaaaXXXXXXXXXCC'
print re.sub('(?<=XXXXXXXXX)CC', '11', data)
这会将CC
更改为11
。由(?<=XXXXX)CC
定义的模式表示仅在前面有XXXXX 时匹配CC,否则表示不匹配。如果您不知道模式,但知道字符数,可以使用(?<=\w{9})CC
来匹配前面的任意9个字符。