удаление случайных пробелов

1

Все,

У меня есть индексированный текст, который я хотел бы форматировать в более равномерной усадьбе. Например:

I    live in  Virginia   and it is  raining     today

Я бы хотел, чтобы это распечатывалось как

I live in Virginia and it is raining today

Я пишу свое приложение на Python, поэтому, если кто-то знает, как это сделать, это было бы очень полезно.

Адам

  • 0
    Регулярные выражения для сокращения пробелов между словами до 1 в этом: возможный дубликат пробела Trim из середины строки . Если вы не знаете модуль re Python, это ответ, который показывает его использование: stackoverflow.com/questions/216870/…
  • 0
    re.sub(r'[ \t]{2,}', ' ', str) . Будьте осторожны при использовании \s вместо этого, так как это включает в себя новые строки и возврат каретки.
Теги:
whitespace

3 ответа

0
Лучший ответ

Регулярные выражения работают здесь, но, вероятно, слишком переполнены. Одна строка без импорта будет позаботиться об этом:

sentence = 'I    live in  Virginia   and it is  raining     today'
' '.join([segment for segment in sentence.split()])
  • 4
    Почему бы не просто ' '.join(sentence.split()) ?
  • 0
    да, я думаю, что это излишне сложно, составляя тот же список из исходного списка, и между ' ' и .join..
9

Очень простой подход:

s = "I    live in  Virginia   and it is  raining     today"
words = s.split()
print ' '.join(words)
  • 0
    Это работает как шарм! Большое спасибо...
3

Вы можете использовать регулярное выражение для выполнения этого

import re
s = 'I    live in  Virginia   and it is  raining     today'
print re.sub(r'\s+', ' ', s)
  • 0
    Как указывалось в NullUserException - r '[\ t] {2,}' будет использоваться для замены пробелов или табуляций. Я просто заменил пробел в своем ответе.
  • 0
    хорошее решение спасибо

Ещё вопросы

Сообщество Overcoder
Наверх
Меню