python re.sub替换匹配字符串中的数字

时间:2018-12-20 12:03:37

标签: python regex python-3.x

在比赛后替换字符串中的数字。

t = 'String_BA22_FR22_BC'
re.sub(r'FR(\d{1,})','',t)

我想要的输出为String_BA22_FR_BC

2 个答案:

答案 0 :(得分:2)

您可以使用

re.sub(r'FR\d+','FR',t)

或者,您可以使用capturing group捕获需要保留的部分,并用\1 backreference替换:

re.sub(r'(FR)\d+', r'\1', t)
         ^--^- >>>----^

请参见Python demo

捕获组方法非常灵活,因为它允许无限长度的模式。

答案 1 :(得分:1)

您正在用空字符串替换您匹配的内容(在这种情况下为FR22)。

另一种选择是使用正数lookbehind,然后将匹配的1+位数字替换为空字符串

(?<=FR)\d+

Regex demo | Python demo

例如:

re.sub(r'(?<=FR)\d+','',t)