[Python]正規表現で文字列から数字のみ抽出!小数点についても

正規表現で文字列から数字のみ抽出する!小数点についてもPython
広告

Pythonにおいて文字列から数字を抽出する方法は様々あります。

本記事では正規表現を使用した方法と正規表現を使わない方法について解説します。

これにより文字列から特定の情報を取り出す基本的な手法を学びましょう。

広告

正規表現で文字列から数字のみ抽出する

正規表現を利用する場合、Pythonの標準ライブラリに含まれるreモジュールが便利です。

以下は、reモジュールを使用して文字列から数字だけを抽出する方法の例です。

import re

# 対象の文字列
text = "Pythonのバージョンは3.9です。"

# 正規表現パターン
pattern = r'\d+'

# 数字の抽出
numbers = re.findall(pattern, text)

# 抽出結果の表示
print(numbers)

この例では\d+という正規表現パターンを使用しています。

これは数字(0から9までのいずれかの文字)が1回以上繰り返されるパターンを表します。

re.findall関数を使用することで対象の文字列からこのパターンに一致する部分を全て抽出できます。

正規表現で小数点のある数字を抽出する

import re

# 対象の文字列
text = "Pythonのバージョンは3.9です。"

# 正規表現パターン
pattern = r'\d+(\.\d+)?'

# 数字の抽出
numbers = re.findall(pattern, text)

# 抽出結果の表示
print(numbers)

この例では\d+(\.\d+)?という正規表現パターンを使用しています。

これは整数部分が1回以上繰り返され、小数点および小数部分が0回または1回現れるパターンを表します。

re.findall関数を使用することで対象の文字列からこのパターンに一致する部分を全て抽出できます。

広告

正規表現を使わずに数値のみ抽出する

正規表現を使わずに文字列から数字だけを抽出する方法としてisdigitメソッドがあります。

これは文字列が全て数字で構成されているかどうかを判定します。

# 対象の文字列
text = "Pythonのバージョンは3.9です。"

# 数字だけを抽出
numbers = ''.join(filter(str.isdigit, text))

# 抽出結果の表示
print(numbers)

この例ではfilter関数とisdigitメソッドを使用しています。

filter関数は条件に一致する要素を取り出し、”.joinを使ってそれらを結合しています。

正規表現を使わずに小数を抽出する

# 対象の文字列
text = "Pythonのバージョンは3.9です。"

# 数字だけを抽出
numbers = ''.join(filter(lambda x: x.isdigit() or x == '.', text))

# 抽出結果の表示
print(numbers)

この例ではfilter関数とisdigitメソッドを使用しています。

isdigitメソッドは各文字が数字かどうかを判定し、lambda x: x.isdigit() or x == ‘.’によって数字または小数点のみを抽出しています。

広告

まとめ

まとめ

文字列から数字を抽出する方法には正規表現を使った方法と正規表現を使わない方法があります。

どちらの方法も状況に応じて使い分けることが重要です。

正規表現は柔軟で強力なツールである一方、シンプルな処理には正規表現を使わない方法も考えられます。

使いやすさや処理の効率を考えながら、適切な方法を選択しましょう。

タイトルとURLをコピーしました