Pythonで文字列の置換を行う:`sub()`と`subn()`の使い方と応用例

この記事では、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. 置換後の文字列
  2. 置換が行われた回数

応用例

基本的な使い方をマスターしたら、さまざまな応用が可能です。

応用例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()`メソッドは、文字列内で特定のパターンを効率よく置換する際に非常に便利です。基本的な使い方から応用まで、多くの場面で役立つでしょう。

コメント

コメントする

目次