[英]Regex search and replace pattern with modified pattern - Python
是否可以使用正则表达式模式匹配找到一个字符串,操纵它并返回它?
例如:
mazda mazda6 mazda 6 mazda3 mazda2
我希望'mazda6'
, 'mazda3'
, 'mazda2'
被'6'
, '3'
, '2'
取代。 我可以使用正则表达式(mazda\\d)
轻松找到它们,但是我不知道如何用匹配模式的修改版本替换它们(即\\ d应该保留)。
理想输出:
mazda 6 mazda 6 3 2
您可以捕获正则表达式中的数字并使用它的替代后引用:
str = "mazda mazda6 mazda 6 mazda3 mazda2"
result = re.sub(r'\bmazda(\d+)', r'\1', str)
输出:
>>> print result
'mazda 6 mazda 6 3 2'
您可以使用mazda
断言来要求mazda
后跟一个数字而不实际匹配它:
str = "mazda mazda6 mazda 6 mazda3 mazda2"
re.sub(r'mazda(?=\d+)', r'', str)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.