首頁 >後端開發 >Python教學 >如何在 Python 中使用正規表示式從字串中提取浮點數?

如何在 Python 中使用正規表示式從字串中提取浮點數?

DDD
DDD原創
2024-12-03 10:25:10166瀏覽

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 :符合一個或多個數字,表示整數部分float.
  • .: 符合小數點。
  • d : 符合一個或多個小數點後的數字,代表浮點數的小數部分。

結果列表將包含提取的浮點數:['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")

此程式碼迭代輸入字串中的標記並嘗試將它們轉換為浮點數。如果轉換成功,則令牌是浮點數。否則就被認為是別的東西。

以上是如何在 Python 中使用正規表示式從字串中提取浮點數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn