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

Pythonの正規表現で文字列内のすべての数値を抽出する方法

テキストから数値だけを取り出す処理は、Pythonによるデータ分析において非常によくある要件です。Pythonの正規表現ライブラリ「re」モジュールを使えば、この処理を簡単に実現できます。正規表現ライブラリでは、数字にマッチするパターンを定義し、そのパターンに合致する部分を部分文字列として抽出できます。

基本的な例

以下の例では、reモジュールが提供するfindall()関数を使用しています。この関数には、抽出したいパターンと、抽出元となる文字列の2つの引数を渡します。なお、下記の例では整数部分のみが取得され、小数点や負の符号は含まれない点に注意してください。

import re
str = input("Enter a String with numbers: \n")
# 数値を格納するためのリストを作成
num_list = re.findall(r'\d+', str)
print(num_list)

実行結果

上記のコードを実行すると、次のような結果が得られます。

Enter a String with numbers:
Go to 13.8 miles and then -4.112 miles.
['13', '8', '4', '112']

小数点や符号も含めて抽出する

検索パターンを拡張することで、小数点や正負の符号(+ / -)も抽出結果に含めることができます。パターン内の[-+]?は符号があってもなくてもマッチすることを意味し、[.]?は小数点の有無に対応しています。

コード例

import re
str = input("Enter a String with numbers: \n")
# 数値を格納するためのリストを作成
num_list = re.findall(r'[-+]?[.]?[\d]+', str)
print(num_list)

実行結果

上記のコードを実行すると、次のような結果が得られます。

Enter a String with numbers:
Go to 13.8 miles and then -4.112 miles.
['13', '.8', '-4', '.112']

このように、正規表現のパターンを調整することで、必要に応じて整数のみ、あるいは小数や符号を含む数値まで柔軟に抽出できます。データの前処理やログ解析など、さまざまな場面で活用できるテクニックなので、ぜひ覚えておきましょう。

  1. Pythonの正規表現とは?基本の考え方と主な使い方をわかりやすく解説

    正規表現とは何か 正規表現(Regular Expression)とは、文字列の中から特定のパターンを検索したり置換したりするために用いられる、文字の並び(パターン)のことです。シンプルに言えば、「文字列の中から目的のパターンを見つけ出し、必要に応じて書き換えるための記法」と理解するとよいでしょう。 正規表現はPythonだけでなく、Perl、R、Javaなど、ほとんどのプログラミング言語でサポートされており、テキスト処理における共通の基礎技術となっています。 正規表現が活躍する場面 正規表現は、ソースコード、ログファイル、スプレッドシート、さらにはドキュメントといったテキストデータから情報

  2. Pythonの正規表現で文字列が英数字のみかどうかを判定する方法

    正規表現を使った英数字チェックの基本Pythonで文字列が英字と数字(アルファベット・半角数字)のみで構成されているかどうかを確認するには、標準ライブラリの re モジュールを使用します。具体的には、re.match(regex, string) を呼び出し、パターンとして "^[a-zA-Z0-9]+$" を指定します。この正規表現の意味は以下の通りです。^:文字列の先頭からマッチを開始[a-zA-Z0-9]:英大文字・小文字または数字のいずれか1文字+:直前のパターンが1回以上繰り返される$:文字列の末尾まで一致することを保証実行例>>> import