ホームページ >バックエンド開発 >Python チュートリアル >Python で正規表現を使用して文字列から浮動小数点数を抽出するにはどうすればよいですか?

Python で正規表現を使用して文字列から浮動小数点数を抽出するにはどうすればよいですか?

DDD
DDDオリジナル
2024-12-03 10:25:10115ブラウズ

How Can I Extract Floating-Point Numbers from a String Using Regular Expressions in Python?

正規表現を使用した文字列からの浮動小数点数の抽出

プログラミングでは、多くの場合、テキスト文字列からデータを抽出する必要があります。この場合、「現在のレベル: 13.4 db」のような文字列から浮動小数点数を抽出しようとしています。

正規表現による解決策

正規表現の使用では、浮動小数点数をキャプチャするパターンを定義できます。次の Python コードを考えてみましょう:

import re

string = "Current Level: 13.4db."
result = re.findall(r"\d+\.\d+", string)
print(result)

このコードは正規表現パターン d .d を使用します:

  • d : の整数部分を表す 1 つ以上の数字と一致します。 float.
  • .: 小数点と一致します。
  • d : 1 つ以上と一致します。浮動小数点の小数部を表す小数点以下の桁。

結果リストには、抽出された浮動小数点数 ['13.4'] が含まれます。

検証付きの堅牢なソリューション

より堅牢なアプローチには、パターン r"[- ]?(?:d*.*d )」。このパターンは、正と負の両方の符号と、小数点の前のオプションの数字を処理します。

result = re.findall(r"[-+]?(?:\d*\.*\d+)", string)
print(result)

抽出に加えて、ユーザー入力を浮動小数点数に直接変換して検証することもできます。

user_input = "Current Level: 1e100 db"
for token in user_input.split():
    try:
        float_value = float(token)
        print(f"{float_value} is a float")
    except ValueError:
        print(f"{token} is something else")

このコードは、入力文字列内のトークンを反復処理し、それらを float に変換しようとします。変換が成功すると、トークンは浮動小数点数になります。それ以外の場合は、別のものとみなされます。

以上がPython で正規表現を使用して文字列から浮動小数点数を抽出するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。