Python 3で文字列の句読点を削除する方法


Python 3で文字列から句読点を削除する方法について説明します。文字列処理において、句読点を削除することは一般的なタスクであり、以下のシンプルな方法を使用することができます。

方法1: 正規表現を使用する方法 Pythonのreモジュールを使用して、正規表現を利用することで、文字列から句読点を削除することができます。以下は例です。

import re
def remove_punctuation(text):
    pattern = r"[^\w\s]"
    return re.sub(pattern, "", text)
# 使用例
text = "Hello, world!"
clean_text = remove_punctuation(text)
print(clean_text)  # 出力: Hello world

この例では、re.sub()関数を使用して、patternで指定した正規表現パターンにマッチする句読点を空文字列に置換しています。[^...]は否定の文字クラスを表し、\wは単語文字、\sは空白文字を表します。したがって、[^\w\s]は単語文字と空白文字以外の文字にマッチします。

方法2: str.translate()を使用する方法 Pythonのstrクラスのtranslate()メソッドを使用すると、指定した文字列から特定の文字を削除することができます。以下は例です。

import string
def remove_punctuation(text):
    translator = str.maketrans("", "", string.punctuation)
    return text.translate(translator)
# 使用例
text = "Hello, world!"
clean_text = remove_punctuation(text)
print(clean_text)  # 出力: Hello world

この例では、string.punctuationを使って句読点のセットを取得し、str.maketrans()関数を使用して削除したい文字を指定します。そして、text.translate()メソッドを呼び出して、句読点を削除した文字列を返します。