我有一个字符串s
,其中:
s = 'id=,value=<<<,RMOrigin=[0]>>>BasicData:id=ABCvalue=<<<ABCRMGrade=[0]>>>BasicData:id=ABCvalue='
我想用DEF代替ABC
<<<ABC\w+=\[0]>>>
则输出应为
<<<DEF\w+=\[0]>>>
在文本中\w+表示RMGrade,但它会随机更改
所需输出为:
S = id=,value=<<<,RMOrigin=[0]>>>BasicData:id=ABCvalue=<<<ABCRMGrade=[0]>>>BasicData:id=ABCvalue=
我试过:
s = re.sub('<<<ABC\w+=\[0]>>>','<<<DEF\w+=\[0]>>>',s)
我被输出为
'id=,value=<<<,RMOrigin=[0]>>>BasicData:id=ABCvalue=<<<DEF\\w+=\\[0]>>>BasicData:id=ABCvalue='
我有点搞不懂你到底想达到什么目的。但是如果您想在模式
<<<ABC\w+=\[0]>>>
的每个匹配中替换ABC
,那么您可以使用对组的反向引用例如,修改模式以便可以引用组
(<<<)ABC(\w+=\[0]>>>)
。现在组#1指的是ABC
之前的部分,组#2指的是ABC
之后的部分。所以替换字符串看起来像这样-\1DEF\2
,其中\1
是组#1,\2
是组#2输出:
id=,value=<<<,RMOrigin=[0]>>>BasicData:id=ABCvalue=<<<DEFRMGrade=[0]>>>BasicData:id=ABCvalue=
您还可以使用函数来定义替换。有关更多信息,请查看documentation
相关问题 更多 >
编程相关推荐