Фактически замена - это пустая строка, но поскольку ab
окружен пробелами с обеих сторон, кажется, что в замене есть пробел. Попробуйте эту версию:
t = re.sub(r'\s*ab\s*', " ", 'This is a ab text')
print(t)
This is a text
Приведенный выше шаблон \s*ab\s*
соответствует и потребляет ab
вместе с любыми окружающими пробелами, а затем заменяет только один пробел.
Для крайнего случая, когда ab
может быть самым первым или последним словом в строке, я рекомендую использовать strip()
, например,
t = re.sub(r'\s*ab\s*', " ", 'ab tests can be so boring ab').strip()
print(t)
tests can be so boring