В некоторых случаях желательно заменить последовательные вхождения каждого символа пробела одним экземпляром , который символа. Для этого вы бы использовали регулярное выражение с обратными ссылками.
(\s)\1{1,}
соответствует любому символу пробела, за которым следует одно или несколько вхождений этого символа. Теперь все, что вам нужно сделать, это указать первую группу (\1
) в качестве замены для матча.
Оборачиваем это в функцию:
import re
def normalize_whitespace(string):
return re.sub(r'(\s)\1{1,}', r'\1', string)
>>> normalize_whitespace('The fox jumped over the log.')
'The fox jumped over the log.'
>>> normalize_whitespace('First line\t\t\t \n\n\nSecond line')
'First line\t \nSecond line'