Python で文字列から特定の文字を削除する

Muhammad Waiz Khan 2023年10月10日
  1. Python で文字列から特定の文字を削除する string.replace() メソッドを使用する
  2. string.join() メソッドを用いた Python で文字列から特定の文字を削除する
  3. re.sub() メソッドを用いた Python で文字列から特定の文字を削除する
Python で文字列から特定の文字を削除する

このチュートリアルでは、Python で文字列から特定の文字を削除するための様々な方法を説明します。多くの場合、データのクリーニングのように、テキストから句読点や特定の特殊文字を削除する必要があります。

Python で文字列から特定の文字を削除する string.replace() メソッドを使用する

string.replace() メソッドは、最初の文字列の引数を 2 番目の文字列の引数に置き換えた後に新しい文字列を返します。string.replace() メソッドを使って文字列から特定の文字を削除するには、for ループを使って文字列から繰り返し 1 文字ずつ削除することができます。

文字を削除したいのであって、文字を置換したいのではないので、第二引数に空の文字列を渡します。以下のコード例は、string.replace() メソッドを用いて文字列から文字を削除する方法を示しています。

string = "Hey! What's up?"
characters = "'!?"

for x in range(len(characters)):
    string = string.replace(characters[x], "")

print(string)

出力:

Hey Whats up

string.join() メソッドを用いた Python で文字列から特定の文字を削除する

string.join(iterable) メソッドは iterable オブジェクトの各要素と string を結合して新しい文字列を返します。string.join() メソッドを使って文字列から特定の文字を削除するには、文字列全体を反復処理して削除したい文字を削除しなければなりません。以下のサンプルコードは、string.join() を使って Python でどのように行うかを示しています。

string = "Hey! What's up?"
characters = "'!?"

string = "".join(x for x in string if x not in characters)
print(string)

出力:

Hey Whats up

re.sub() メソッドを用いた Python で文字列から特定の文字を削除する

re モジュールの re.sub(pattern, repl, string, count) メソッドは、正規表現 pattern を元の文字列の中の repl の値で置き換えた後に新しい文字列を返します。count は文字列から pattern を置換する回数を意味します。

文字は削除する必要があるが置換はしないので、repl は空の文字列と等しくなります。以下のコード例は、re.sub() メソッドを用いて Python で文字列から文字を置換する方法を示しています。

import re

string = "Hey! What's up?"
string = re.sub("\!|'|\?", "", string)
print(string)

出力:

Hey Whats up

関連記事 - Python String