130

Linux の python 2.7 ですべてのスペース/タブ/改行を削除しようとしています。

私はこれを書きました、それは仕事をするはずです:

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

簡単なことのように思えますが、ここで何かが欠けています。何かをインポートする必要がありますか?

4

8 に答える 8

155

str.split([sep[, maxsplit]])nosepまたはと共に使用sep=None:

ドキュメントから:

が指定されていない場合、sepまたは isNoneである場合は、別の分割アルゴリズムが適用されます。連続する空白の実行は単一の区切り文字と見なされ、文字列の先頭または末尾に空白がある場合、結果の先頭または末尾に空の文字列は含まれません。

デモ:

>>> 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'
于 2012-05-22T22:42:54.763 に答える
67

複数の空白項目を削除して単一のスペースに置き換えたい場合、最も簡単な方法は次のような正規表現を使用することです。

>>> 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()ます。

于 2012-05-22T22:40:43.157 に答える
13
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
于 2012-12-31T11:32:23.070 に答える