Pythonで正規表現を使って数字と数値を効率的にマッチングする方法

この記事では、Pythonで正規表現を用いて数字と数値をマッチングする手法について詳しく解説します。具体的なコード例とその詳細、そして応用例を含めてご紹介します。

目次

はじめに

正規表現はテキストデータの検索や置換、マッチングを行うための非常に強力なツールです。特に、数字や数値のマッチングにおいては多くの応用場面があります。この記事では、そのような数字と数値のマッチングをPythonで如何に効率よく行うかに焦点を当てます。

基本的な数字と数値のマッチング

基本的なコード例

import re

pattern = r'\d+'  # 1個以上の数字にマッチするパターン
text = "年収は450万円です。"
match = re.search(pattern, text)

if match:
    print(f"マッチした数字は: {match.group()}")
else:
    print("マッチする数字がありません")

コードの解説

このコードでは、正規表現のパターンとして`\d+`を指定しています。このパターンは1つ以上の数字にマッチします。そして、`re.search()`関数を使ってテキストデータ内のマッチする部分を検索しています。

応用例

応用例1: 浮動小数点数のマッチング

pattern_float = r'\d+\.\d+'  # 浮動小数点数にマッチするパターン
text_float = "円周率は3.14159です。"
match_float = re.search(pattern_float, text_float)

if match_float:
    print(f"マッチした浮動小数点数は: {match_float.group()}")
else:
    print("マッチする浮動小数点数がありません")

コードの解説

`\d+\.\d+`というパターンを用いることで、浮動小数点数にマッチします。この例では、`3.14159`という数値にマッチしています。

応用例2: マッチした数字の合計計算

pattern = r'\d+'  # 1個以上の数字にマッチするパターン
text = "今年の売上は300万円、費用は200万円です。"
matches = re.findall(pattern, text)

if matches:
    total = sum(map(int, matches))
    print(f"合計金額は: {total}万円")
else:
    print("マッチする数字がありません")

コードの解説

`re.findall()`関数を用いて、全てのマッチした数字をリストで取得します。その後、`sum()`と`map()`関数を使って、取得した全ての数字の合計を計算しています。

まとめ

Pythonで正規表現を使って数字や数値を効率よくマッチングする方法について解説しました。基本的なマッチングから浮動小数点数のマッチング、さらにはマッチした数値を用いた計算まで、幅広い応用例を考慮しています。この知識を活用して、より高度なテキスト処理を行ってみてください。

コメント

コメントする

目次