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

Pythonの正規表現を使って文字列から数値を抽出する方法

正規表現モジュールを使った抽出方法

Pythonで文字列から数値を抽出する場合、標準ライブラリのreモジュール(正規表現モジュール)を使うのが最も高速で効率的な方法です。まずはモジュールをインポートします。

>>> import re

サンプル文字列の準備

ここでは、整数と浮動小数点数が混在した以下のような文字列を例に考えてみましょう。

>>> s = 'my age is 25. I have 55.50 percent marks and 9764135408 is my number'

findall()関数で数値を抽出する

findall()関数は、指定したパターンに一致するすべての要素をリストとして返します。今回使用するパターン \d*\.?\d+ は、小数点の前後にある数字を含む数値全体にマッチします。

  • \d*:小数点の前にある0個以上の数字
  • \.?:あってもなくてもよい小数点(ピリオド)
  • \d+:小数点の後にある1個以上の数字
>>> re.findall('\d*\.?\d+', s)

実行結果

実行すると、文字列内のすべての数値を含むリストオブジェクトが返されます。

['25', '55.50', '9764135408']

このように、整数「25」、小数「55.50」、桁数の多い整数「9764135408」がすべて正しく抽出できていることがわかります。返される要素は文字列型なので、計算などに使いたい場合は float()int() で数値型へ変換するとよいでしょう。

  1. Pythonで16進数の文字列を10進数に変換する方法を解説

    この記事では、16進数の文字列を10進数に変換する問題の解決策について詳しく解説します。課題の概要16進数形式の文字列が与えられたとき、それを対応する10進数の値に変換することを目標とします。例えば、16進数の「F」は10進数では「15」に相当します。この問題には主に2つのアプローチがあります。力ずく(ブルートフォース)な手法:int関数を使った明示的な型変換組み込みモジュールを活用する手法:astモジュールのliteral_eval関数を使用方法1:int関数を使った変換最もシンプルで一般的な方法は、Pythonの組み込み関数であるint()を利用するものです。この関数は2つの引数を受け取り

  2. Pythonで文字列から数字を抽出する方法【isdigitと正規表現の使い分け】

    正の整数だけを抽出するシンプルな方法文字列に含まれる正の整数だけを取り出したい場合は、split()で空白ごとに文字列を分割し、isdigit()で各要素が数字のみで構成されているかを判定する方法が手軽です。>>> s = h3110 23 cat 444.4 rabbit 11 2 dog >>> [int(x) for x in s.split() if x.isdigit()] [23, 11, 2]この方法では、すべてが数字で構成された要素だけが整数に変換されてリストに追加されます。そのため「h3110」のように文字と数字が混ざった語句や、「444.