両端、単語の間にある文字列からすべての空白を削除します。
私はこのPythonコードを持っています:
def my_handle(self):
sentence = ' hello Apple '
sentence.strip()
しかし、それは文字列の両側の空白を削除するだけです。すべての空白を削除する方法
先頭と末尾のスペースを削除したい場合は、 str.strip()
を使用してください。
sentence = ' hello Apple'
sentence.strip()
>>> 'hello Apple'
すべてのスペースを削除したい場合は、 str.replace()
を使用してください。
sentence = ' hello Apple'
sentence.replace(" ", "")
>>> 'helloapple'
重複したスペースを削除したい場合は、 str.split()
を使用してください。
sentence = ' hello Apple'
" ".join(sentence.split())
>>> 'hello Apple'
スペースのみを削除するには を使用してください str.replace
:
sentence = sentence.replace(' ', '')
すべての空白文字 (スペース、タブ、改行など)を削除するには、 split
を使用してから join
を使用できます。
sentence = ''.join(sentence.split())
または正規表現:
import re
pattern = re.compile(r'\s+')
sentence = re.sub(pattern, '', sentence)
最初と最後から空白のみを削除したい場合は、 strip
を使用できます。
sentence = sentence.strip()
文字列の先頭からのみ空白を削除するには lstrip
を、文字列の末尾からの空白を削除するには rstrip
を使用することもできます。
別の方法としては、正規表現を使用して これらの奇妙な空白文字 と一致させることができます。ここではいくつかの例を示します。
単語の間であっても、文字列内のすべてのスペースを削除します。
import re
sentence = re.sub(r"\s+", "", sentence, flags=re.UNICODE)
文字列の先頭のスペースを削除します。
import re
sentence = re.sub(r"^\s+", "", sentence, flags=re.UNICODE)
文字列の終わりにあるスペースを削除します。
import re
sentence = re.sub(r"\s+$", "", sentence, flags=re.UNICODE)
文字列のBEGINNINGとENDの両方のスペースを削除します。
import re
sentence = re.sub("^\s+|\s+$", "", sentence, flags=re.UNICODE)
重複のないスペースのみを削除します。
import re
sentence = " ".join(re.split("\s+", sentence, flags=re.UNICODE))
(すべての例はPython 2とPython 3の両方で動作します)
空白には スペース、タブ、およびCRLF が含まれます。だから私たちが使うことができるエレガントで one-liner string関数は translate :です。
' hello Apple'.translate(None, ' \n\t\r')
_または_ あなたが徹底的になりたいなら:
import string
' hello Apple'.translate(None, string.whitespace)
先頭と末尾から空白を削除するには、strip
を使用します。
>> " foo bar ".strip()
"foo bar"
' hello \n\tapple'.translate( { ord(c):None for c in ' \n\t\r' } )
MaKはすでに上記の "translate"メソッドを指摘しました。そしてこのバリエーションはPython 3で動作します( this Q&A を参照)。
注意してください:
strip
は、rstripとlstripを実行します(先頭と末尾のスペース、タブ、リターン、フォームフィードは削除しますが、文字列の途中では削除しません)。
スペースとタブを置き換えるだけでは、探しているものと一致するように見えるが同じではない隠されたCRLFになる可能性があります。
import re
sentence = ' hello Apple'
re.sub(' ','',sentence) #helloworld (remove all spaces)
re.sub(' ',' ',sentence) #hello world (remove double spaces)
さらに、 strip にはいくつかのバリエーションがあります。
文字列のBEGINNINGとENDのスペースを削除します。
sentence= sentence.strip()
文字列の先頭のスペースを削除します。
sentence = sentence.lstrip()
文字列の終わりにあるスペースを削除します。
sentence= sentence.rstrip()
3つの文字列関数strip
、lstrip
、およびrstrip
はすべて、削除する文字列のパラメータを受け取ることができます。デフォルトはすべて空白です。これは、何か特別なことをしているときに役に立ちます。例えば、スペースだけを削除し、改行は削除できません。
" 1. Step 1\n".strip(" ")
あるいは、文字列リストを読み込むときに余分なコンマを削除することもできます。
"1,2,3,".strip(",")