Python 文字列の空白を削除する方法
文字列内の空白を削除する方法を以下に紹介します。それらは基本的に 2つのカテゴリに分類できます。1つは Python 文字列オブジェクト str
のメソッド、たとえば str.split()
と str.replace()
です; もう 1つは Python 正規表現メソッドです。
次の例では、処理する文字列として文字列 " Demo Example "
を使用します。
Python 文字列の先頭の空白を削除する
str.lstrip()
方法
>>> demo = " Demo Example "
>>> demo.lstrip()
"Demo Example "
ここで、str.lstrip()
メソッドは、文字列の先頭から入力変数で指定された文字を削除します。入力変数が指定されていない場合は、先頭の空白を単に削除します。
Python 正規表現メソッド
>>> import re
>>> demo = " Demo Example "
>>> re.sub(r"^\s+", "", demo)
"Demo Example "
^
は文字列の先頭だけにマッチする文字を指定しました。\s
はスペース、タブ、リターンなど、様々な空白記号にマッチするという意味です。つまり、後ろの文字セット [ \t\n\r\f\v]
に相当します。+
は、できるだけ多くの空白にマッチする必要があることを示します。
Python 文字列の末尾の空白を削除する
str.rstrip()
方法
str.lstrip()
メソッドに対応するメソッドは、文字列の先頭の空白を削除するために使用できます。str.rstrip()
は、文字列の末尾の空白を削除するために使用できます。
>>> demo = " Demo Example "
>>> demo.lstrip()
" Demo Example"
Python 正規表現メソッド
同様に、文字列の末尾の空白にマッチする式を使用する必要があります。
>>> import re
>>> demo = " Demo Example "
>>> re.sub(r"\s+$", "", demo)
" Demo Example"
Python 文字列の先頭と末尾の両方の空白を削除する
str.strip()
方法
str.strip()
は、文字列の先頭と末尾の空白を削除するための str.lstrip()
と str.rstrip()
の組み合わせです。
>>> demo = " Demo Example "
>>> demo.strip()
"Demo Example"
Python 正規表現 sub()
メソッド
>>> import re
>>> demo = " Demo Example "
>>> re.sub(r"^\s+|\s+$", "", demo)
"Demo Example"
すべての空白を削除する
Python 文字列置換メソッド str.replace()
空白の位置を確認する必要はありません。したがって、str.replace()
メソッドを使用してすべての空白を空の文字列に置き換えることができます。
>>> demo = " Demo Example "
>>> demo.replace(" ", "")
'DemoExample'
Python 文字列正規表現の置換 sub()
メソッド
正規表現は \s+
、空白とマッチするだけです。
>>> import re
>>> demo = " Demo Example "
>>> re.sub(r"\s+", "", demo)
"DemoExample"
重複する空白のみを削除する
Python 文字列分割方法 str.split()
>>> demo = " Demo Example "
>>> " ".join(demo.split())
'Demo Example'
str.split()
は文字列のサブ文字列のリストを返します。入力変数が空の場合、空白文字はデフォルトのセパレータです。
Python 正規表現の分割方法 re.split()
>>> import re
>>> demo = " Demo Example "
>>> " ".join(re.split(r"\s+", demo)
" Demo Example "
re.split()
とは str.split()
どこ異なっている re.split()
文字列がこれらの位置に空白がある場合は先頭の空の文字列またはリストの最後になりますが、str.split()
その結果の空の文字列が含まれていません。
re.split()
と str.split()
の結果は違っています。re.split()
の出力結果には空の文字列が含まれています、文字列の先頭や末尾に空白の文字が含まれていますが、str.split()
メソッドの結果には空の文字列はありません。