Python
 Computer >> コンピューター >  >> プログラミング >> Python

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() を活用すると、不要な文字の除去やデータのクリーニングなど、文字列操作を簡潔かつ柔軟に行うことができます。

  1. Pythonで文字列内のテキストを検索・置換する方法|re.sub()の使い方を解説

    Pythonの標準ライブラリである「re」モジュールには、指定したパターンを検索して新しい部分文字列に置き換えるための re.sub() メソッドが用意されています。もし指定したパターンが見つからなかった場合は、元の文字列がそのまま変更されずに返されます。 re.sub() の基本構文 re.sub(pattern, repl, string) 各引数の意味は以下のとおりです。 pattern:検索したい正規表現パターン repl:置き換え後の文字列 string:検索対象となる元の文字列 使用例 次のコードでは、文字列「TP is most popular Tutorials si

  2. Pythonのre.searchとre.matchの違いとは?正規表現マッチングの使い分けを徹底解説

    Pythonのreモジュールには、正規表現でパターンを検索するためのメソッドがいくつか用意されています。その中でもよく使われるのが re.match() と re.search() の2つです。どちらもマッチオブジェクトを返すという点では似ていますが、検索範囲に重要な違いがあります。 re.match():文字列の先頭だけをチェックする re.match() は、パターンが文字列の先頭で一致した場合にのみマッチを返します。文字列の途中にパターンが存在しても、先頭で一致しなければ結果は None になります。 たとえば、文字列「TP Tutorials Point TP」に対してパターン「TP」