Удаление лишних пробелов в строке

Функция нормализует имя и выводит его без лишних пробелов

def normalize_name(s):
    s=s.title()
    s=re.sub(r'\s+', ' ', s)
    return s

name=input()
print(normalize_name(name))

Но когда я ввожу :

sir Arthur Conan Doyle

между словами пробелы убирает, а в начале и в конце всё равно остаются лишние пробелы.

s=re.sub(r'\s+', ' ', s)

  • что тут не так?

Ответы (1 шт):

Автор решения: strawdog

Лишние пробелы у вас не "остаются" - вы их сами ставите, заменяя несколько пробелов "\s+" (один и больше) на один пробел (" "). поэтому я вам советую сначала избавиться от крайних пробелов, а потом применять re.sub:

s ="    sir Arthur     Conan   Doyle "
s = s.strip()
s = re.sub(r"\s+"," ", s)

sir Arthur Conan Doyle

→ Ссылка