← Все вопросы

Как заменить несколько пробелов подряд одним?

Задан 13 месяцев назад625 просмотров3 ответа
12

После парсинга в тексте куча лишних пробелов: 'мама мыла раму'. Хочу нормализовать в один пробел между словами. Можно без регулярок?

3 ответа

21
✓ Принятый ответ — помог автору

Классический трюк без регулярок:

s = 'мама   мыла    раму'
print(' '.join(s.split()))  # 'мама мыла раму'

split() разбивает по любым пробелам и выкидывает лишние, а ' '.join(...) склеивает обратно одним пробелом. Заодно убираются пробелы по краям.

Руслан Сагдиев Самый питоничный способ · 12 месяцев назад
Леонид Дремов И табы с переносами тоже схлопнет · 12 месяцев назад
7

Если хочется именно регуляркой: re.sub(r'\s+', ' ', s).strip().

4

' '.join(s.split()).

Ваш ответ

Войдите, чтобы ответить на вопрос.
Поддержать проект