Python の正規表現置換メソッド
このチュートリアルでは、re.sub()
メソッドの使用法と関数を調べ、サンプルコードを調べます。Python の re
モジュールは、Unicode 文字列と 8 ビット文字列の両方に正規表現を使用してさまざまな機能を提供します。機能には、文字列の置換、分割、マッチングなどが含まれます。
Python で re.sub()
メソッドを使用した正規表現の置換
re.sub(pattern, repl, string, count=0)
メソッドは、入力として string
を受け取り、pattern
の左端のオカレンスを repl
に置き換えます。string
引数に pattern
が見つからない場合、string
は変更なしで返されます。
pattern
引数は正規表現の形式である必要があります。repl
は文字列または関数にすることができます。repl
引数が文字列の場合、string
の pattern
は repl
文字列に置き換えられます。関数が repl
引数として渡された場合、pattern
の出現が見つかるたびに関数が呼び出されます。この関数は、matchObject
を入力として受け取り、置換文字列を返します。matchObject
は、一致が見つかった場合は True
に等しくなり、それ以外の場合は None
に等しくなります。
オプションの count
引数は、string
で置換する pattern
の最大出現回数を表します。
以下のサンプルコードは、re.sub()
メソッドを使用して、正規表現を使用して文字列から一部のパターンを置き換える方法を示しています。
import re
string = "Hello! How are you?! Where have you been?!"
new_string = re.sub(r"""[!?'".<>(){}@%&*/[/]""", " ", string)
print(new_string)
出力:
Hello How are you Where have you been
上記のコード例では、pattern
引数で指定された文字を空白で削除します。これは、上記のコードの repl
引数です。
以下のサンプルコードに示すように、この関数を repl
引数として使用して、repl
引数の出現が見つかったときに" "
を返すことで、同じタスクを実行することもできます。
import re
def repl_func(match):
if match == True:
return " "
string = "Hello! How are you?! Where have you been?!"
new_string = re.sub(r"""[!?'".<>(){}@%&*/[/]""", repl_func, string)
print(new_string)
出力:
Hello How are you Where have you been