Замена чисел в строке после совпадения.
t = 'String_BA22_FR22_BC' re.sub(r'FR(\d{1,})','',t)
Мой желаемый результат будет String_BA22_FR_BC
String_BA22_FR_BC
Вы заменяете то, что соответствует (в данном случае FR22) пустой строкой.
FR22
Другой вариант - использовать положительное значение lookbehind и затем совпадать с 1+ цифрами и заменить это совпадение пустой строкой:
(?<=FR)\d+
Regex demo | Python demo
Например:
re.sub(r'(?<=FR)\d+','',t)
Вы можете использовать
re.sub(r'FR\d+','FR',t)
В качестве альтернативы вы можете захватить часть, которую вам нужно сохранить, с помощью группы захвата и заменить на \1 обратная ссылка :
\1
re.sub(r'(FR)\d+', r'\1', t) ^--^- >>>----^
См. Демонстрационную версию Python
Групповой подход захвата является гибким, поскольку он допускает шаблоны неограниченной длины.