この記事では、Pythonで文字列の置換を行うために使用される`sub()`と`subn()`メソッドについて詳しく説明します。これらのメソッドはPythonの正規表現ライブラリ`re`に含まれています。具体的なコード例、その解説、さらには応用例も2つ以上紹介します。
目次
基本的な使用方法
Pythonの`re`モジュールには、`sub()`と`subn()`という二つの文字列置換メソッドがあります。基本的な使用方法を見ていきましょう。
`sub()`メソッド
`sub()`メソッドは、指定したパターンに一致するすべての部分文字列を別の文字列に置き換えます。
import re
# 文字列内で "apple" を "orange" に置換
text = "I have an apple."
new_text = re.sub('apple', 'orange', text)
print(new_text) # "I have an orange."
`subn()`メソッド
`subn()`メソッドは、置換後の文字列と置換が行われた回数をタプルで返します。
# 文字列内で "apple" を "orange" に置換
text = "I have an apple, you have an apple."
new_text, count = re.subn('apple', 'orange', text)
print(new_text) # "I have an orange, you have an orange."
print(count) # 2
コードの詳細解説
`sub()`の引数
`sub()`メソッドは主に3つの引数を取ります。
1. 置換対象のパターン
2. 置換する文字列
3. 置換される元の文字列
- 置換対象のパターン:正規表現を使用して置換対象となる文字列や文字のパターンを指定します。
- 置換する文字列:置換対象のパターンに一致した部分をどのように置き換えるかを指定します。
- 置換される元の文字列:この文字列内で置換が行われます。
`subn()`の引数
`subn()`の引数は`sub()`と基本的に同じですが、返り値がタプルである点が異なります。
- 置換後の文字列
- 置換が行われた回数
応用例
基本的な使い方をマスターしたら、さまざまな応用が可能です。
応用例1: HTMLタグの除去
HTMLタグを除去する一例です。
# HTMLタグを除去する
html_text = "This is a test paragraph.
"
clean_text = re.sub('<.*?>', '', html_text)
print(clean_text) # "This is a test paragraph."
応用例2: 電話番号の形式変更
電話番号の形式を変更する例です。
# 電話番号の形式を変更する
phone = "123-456-7890"
formatted_phone = re.sub(r'(\d{3})-(\d{3})-(\d{4})', r'(\1) \2-\3', phone)
print(formatted_phone) # "(123) 456-7890"
まとめ
Pythonの`re`モジュールの`sub()`と`subn()`メソッドは、文字列内で特定のパターンを効率よく置換する際に非常に便利です。基本的な使い方から応用まで、多くの場面で役立つでしょう。
コメント