Pythonで文字列から空白を削除する方法
はじめに
Pythonは文字列から余分な空白を取り除いて新しい文字列オブジェクトを返すために使用できる3つのメソッドを提供しています。文字列のstripメソッドは、先頭の空白、末尾の空白、または両方の空白を取り除くことができます。すべての空白または重複したスペースのみを取り除く方法を含め、空白を削除する詳細については、「Pythonで文字列からスペースを削除する方法」を参照してください。
ホワイトスペースには、スペース、タブ (\t)、キャリッジリターン (\r)、および改行 (\n) など、すべてのUnicodeホワイトスペース文字が含まれます。Pythonのstr()クラスには、文字列からホワイトスペースを取り除くために使用できる以下のメソッドがあります。
- strip([chars]): Trims characters from both ends of a string. When chars is omitted or None, returns a new string with all leading and trailing whitespace removed.
- rstrip([chars]): Trims characters from the right side of a string. When chars is omitted or None, returns a new string with all trailing whitespace removed.
- lstrip([chars]): Trims characters from the left side of a string. When chars is omitted or None, returns a new string with all leading whitespace removed.
文字列から空白を取り除くために、ストリップメソッドを使用する。
下記の例は、文字列から先頭のスペース、末尾のスペース、または先頭と末尾のスペースを削除する方法を示しています。
s1 = ' shark '
print(f"string: '{s1}'")
s1_remove_leading = s1.lstrip()
print(f"remove leading: '{s1_remove_leading}'")
s1_remove_trailing = s1.rstrip()
print(f"remove trailing: '{s1_remove_trailing}'")
s1_remove_both = s1.strip()
print(f"remove both: '{s1_remove_both}'")
出力は次のとおりです。
string: ' shark '
remove leading: 'shark '
remove trailing: ' shark'
remove both: 'shark'
以下の例は、同じストリップメソッドを使用して、文字列から複数の空白文字をトリムする方法を示しています。
s2 = ' \n shark\n squid\t '
print(f"string: '{s2}'")
s2_remove_leading = s2.lstrip()
print(f"remove leading: '{s2_remove_leading}'")
s2_remove_trailing = s2.rstrip()
print(f"remove trailing: '{s2_remove_trailing}'")
s2_remove_both = s2.strip()
print(f"remove both: '{s2_remove_both}'")
出力は:
string: ‘ shark squid ‘ remove leading: ‘shark squid ‘ remove trailing: ‘ shark squid’ remove both: ‘shark squid’
出力結果は、文字引数を省略してstripメソッドを使用すると、文字列から先頭と末尾のスペース、改行、タブ文字のみが除去されることを示しています。文字列の先頭や末尾以外のスペースは削除されません。
ストリップメソッドを使用して、文字列から特定の空白文字をトリミングする方法
文字列の先頭と末尾から、指定した文字を削除することもできます。以下の例では、文字列の先頭から改行文字を削除する方法を示しています。
s3 = '\n sammy\n shark\t '
print(f"string: '{s3}'")
s3_remove_leading_newline = s3.lstrip('\n')
print(f"remove only leading newline: '{s3_remove_leading_newline}'")
出力は次の通りです。
string: ‘ sammy shark ‘ remove only leading newline: ‘ sammy shark ‘
出力結果によると、lstrip() メソッドは先頭の改行文字を削除しますが、文字列の先頭のスペースは削除しません。
ストリップメソッドは、指定した文字が先頭または末尾の最も外側にある場合にのみ削除されることに注意してください。例えば、rstrip()を使用してs3 = ‘\n sammy\n shark\t ‘から末尾のタブ文字のみを削除することはできません。これは\tの後ろにスペースがあるためです。
結論
この記事では、strip()、rstrip()、およびlstrip()メソッドを使用して、文字列から前後の空白を削除する方法について説明しました。文字列内のスペースや文字を削除する方法については、Pythonで文字列からスペースを削除する方法を参照してください。さらに、Pythonの文字列チュートリアルを続けて学習してください。