2012-05-22 1 views
38

Я пытаюсь удалить все пробелы/табуляции/новые строки в python 2.7 на Linux.Полоса пробелов/tabs/newlines - python

я писал, что должен делать эту работу:

myString="I want to Remove all white \t spaces, new lines \n and tabs \t" 
myString = myString.strip(' \n\t') 
print myString 

выход:

I want to Remove all white spaces, new lines 
and tabs 

Похоже, простая вещь, чтобы сделать, но мне не хватает здесь что-то. Должен ли я что-то импортировать?

+2

Нет он не должен. –

+1

может быть полезным: http://stackoverflow.com/questions/8928557/python-splitting-string-by-all-space-characters – newtover

+1

Это сработало для меня, начиная с: [Как обрезать пробелы (включая вкладки)?] [1] s = s.strip ('\ т \ п \ г') [1]: http://stackoverflow.com/questions/1185524/how-to-trim-whitespace- в том числе вкладки – stamat

ответ

25

Если вы хотите удалить несколько элементов пробельные и заменить их одним пробелом, самый простой способ с регулярным выражением, как это:

>>> import re 
>>> myString="I want to Remove all white \t spaces, new lines \n and tabs \t" 
>>> re.sub('\s+',' ',myString) 
'I want to Remove all white spaces, new lines and tabs ' 

Вы можете удалить косую пространство с .strip(), если вы хотите.

73

Использование str.split([sep[, maxsplit]]), без sep или sep=None:

От docs:

Если sep не указан или None, другой алгоритм расщепления примененные: пробеги последовательных пробелов рассматриваются как одиночный разделитель, и результат не будет содержать пустых строк в начале или закончится, если строка имеет ведущие или конечные пробелы.

Демо:

>>> myString.split() 
['I', 'want', 'to', 'Remove', 'all', 'white', 'spaces,', 'new', 'lines', 'and', 'tabs'] 

Использование str.join на возвращаемом списке, чтобы получить этот результат:

>>> ' '.join(myString.split()) 
'I want to Remove all white spaces, new lines and tabs' 
10
import re 

mystr = "I want to Remove all white \t spaces, new lines \n and tabs \t" 
print re.sub(r"\W", "", mystr) 

Output : IwanttoRemoveallwhitespacesnewlinesandtabs 
+1

это также удаляет ';' – jan

1

Это будет только удалить вкладку, новые строки, пространства и ничего больше.

import re 
myString = "I want to Remove all white \t spaces, new lines \n and tabs \t" 
output = re.sub(r"[\\n\\t\s]*", "", mystr) 

ВЫВОД:

IwaoRemoveallwhiespaces, ewliesadabs

Добрый день!

1

Используйте повторно библиотека

import re 
myString = "I want to Remove all white \t spaces, new lines \n and tabs \t" 
myString = re.sub(r"[\n\t\s]*", "", myString) 
print myString 

Выход:

IwanttoRemoveallwhitespaces, не newlinesandtabs