是否可以使用正则表达式模式匹配找到一个字符串,操纵它&归还吗?
例如:
mazda mazda6 mazda 6 mazda3 mazda2
我希望'mazda6'
,'mazda3'
,'mazda2'
替换为'6'
,'3'
,'2'
。我可以使用正则表达式(mazda\d)
轻松找到它们,但我不知道如何用匹配模式的修改版本替换它们(即\ d应该保留)。
理想输出:
mazda 6 mazda 6 3 2
答案 0 :(得分:3)
您可以捕获正则表达式中的数字,并在替换时使用它的反向引用:
str = "mazda mazda6 mazda 6 mazda3 mazda2"
result = re.sub(r'\bmazda(\d+)', r'\1', str)
<强>输出:强>
>>> print result
'mazda 6 mazda 6 3 2'
答案 1 :(得分:0)
您可以使用look-ahead assertion要求mazda
后跟一个数字而不实际匹配它:
str = "mazda mazda6 mazda 6 mazda3 mazda2"
re.sub(r'mazda(?=\d+)', r'', str)