2012-05-22 27 views
38

Tôi đang cố xóa tất cả dấu cách/tab/dòng mới trong python 2.7 trên Linux.Dải cách/tab/dòng mới - python

tôi đã viết này, chúng ta thực hiện công việc:

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

đầu ra:

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

Nó có vẻ như là một điều đơn giản để làm, nhưng tôi đang thiếu một cái gì đó ở đây. Tôi có nên nhập gì đó không?

+2

Không nó không nên. –

+1

có thể hữu ích: http://stackoverflow.com/questions/8928557/python-splitting-string-by-all-space-characters – newtover

+1

Điều này làm việc cho tôi, từ: [Làm thế nào để cắt khoảng trắng (bao gồm các tab)?] [1] s = s.strip ('\ t \ n \ r') [1]: http://stackoverflow.com/questions/1185524/how-to-trim-whitespace- bao gồm các tab – stamat

Trả lời

25

Nếu bạn muốn xóa nhiều mục khoảng trắng và thay thế chúng với không gian duy nhất, cách dễ nhất là với một regexp như thế này:

>>> 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 ' 

Sau đó bạn có thể loại bỏ các không gian dấu với .strip() nếu bạn muốn.

73

Sử dụng str.split([sep[, maxsplit]]) không có sep hoặc sep=None:

Từ docs:

Nếu sep không được xác định hoặc là None, một thuật toán tách khác nhau được áp dụng: chạy của khoảng trắng liên tiếp được coi là một đơn phân cách và kết quả sẽ không chứa các chuỗi trống khi bắt đầu hoặc kết thúc nếu chuỗi có khoảng trắng đầu hoặc cuối.

Demo:

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

Sử dụng str.join trong danh sách quay trở lại để có được kết quả này:

>>> ' '.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

điều này cũng xóa ';' – jan

1

này sẽ chỉ loại bỏ các tab, dòng mới, không gian và không có gì khác.

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) 

OUTPUT:

IwaoRemoveallwhiespaces, ewliesadabs

ngày Tốt!

1

Sử dụng tái thư viện

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 

Output:

IwanttoRemoveallwhitespaces, newlinesandtabs

Các vấn đề liên quan