Python 文字列の空白を削除する方法

Jinku Hu 2023年1月30日 2019年12月27日 Python Python String
  1. Python 文字列の先頭の空白を削除する
  2. Python 文字列の末尾の空白を削除する
  3. Python 文字列の先頭と末尾の両方の空白を削除する
  4. すべての空白を削除する
  5. 重複する空白のみを削除する
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() メソッドの結果には空の文字列はありません。

Author: Jinku Hu
Jinku Hu avatar Jinku Hu avatar

Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.

LinkedIn

関連記事 - Python String

  • Python で文字列からコンマを削除する
  • Pythonic 方式で文字列が空であることを確認する方法
  • Python で文字列を変数名に変換する
  • Python で文字列から数字を抽出する
  • Python が文字列を日時 datetime に変換する方法