Pythonでの検索と置換:re.sub()メソッドの使い方
Pythonのreモジュールが提供する正規表現関連のメソッドの中でも、特に重要なのがsubメソッドです。文字列の中から特定のパターンを見つけて、別の文字列に置き換える際に広く使われています。
構文
re.sub(pattern, repl, string, max=0)
このメソッドは、string 内で正規表現 pattern に一致するすべての箇所を repl に置き換えます。max を指定した場合は、最大でその回数までしか置き換えを行いません(省略時はすべて置き換え)。戻り値は置き換え後の文字列です。
各引数の意味は以下のとおりです。
- pattern:検索対象となる正規表現パターン
- repl:置き換え後の文字列(または関数)
- string:検索・置換の対象となる元の文字列
- max:置き換えを行う最大回数(0の場合は全件置き換え)
使用例
#!/usr/bin/python
import re
phone = "2004-959-559 # This is Phone Number"
# Python形式のコメントを削除
num = re.sub(r'#.*$', "", phone)
print("Phone Num : ", num)
# 数字以外の文字をすべて削除
num = re.sub(r'\D', "", phone)
print("Phone Num : ", num)
実行結果
上記のコードを実行すると、次のような出力が得られます。
Phone Num : 2004-959-559 Phone Num : 2004959559
最初の処理では、#.*$ というパターンにより「#」以降のコメント部分が空文字列に置き換えられ、電話番号だけが残ります。続く処理では、\D(数字以外の任意の1文字)に一致するすべての文字が削除されるため、数字のみが抽出されます。
このように re.sub() を活用すると、不要な文字の除去やデータのクリーニングなど、文字列操作を簡潔かつ柔軟に行うことができます。
-
Pythonで文字列内のテキストを検索・置換する方法|re.sub()の使い方を解説
Pythonの標準ライブラリである「re」モジュールには、指定したパターンを検索して新しい部分文字列に置き換えるための re.sub() メソッドが用意されています。もし指定したパターンが見つからなかった場合は、元の文字列がそのまま変更されずに返されます。 re.sub() の基本構文 re.sub(pattern, repl, string) 各引数の意味は以下のとおりです。 pattern:検索したい正規表現パターン repl:置き換え後の文字列 string:検索対象となる元の文字列 使用例 次のコードでは、文字列「TP is most popular Tutorials si
-
Pythonのre.searchとre.matchの違いとは?正規表現マッチングの使い分けを徹底解説
Pythonのreモジュールには、正規表現でパターンを検索するためのメソッドがいくつか用意されています。その中でもよく使われるのが re.match() と re.search() の2つです。どちらもマッチオブジェクトを返すという点では似ていますが、検索範囲に重要な違いがあります。 re.match():文字列の先頭だけをチェックする re.match() は、パターンが文字列の先頭で一致した場合にのみマッチを返します。文字列の途中にパターンが存在しても、先頭で一致しなければ結果は None になります。 たとえば、文字列「TP Tutorials Point TP」に対してパターン「TP」