如何從字串中精確提取浮點數
在某些場景下,從字串中提取浮點數是必要的。例如,您可能會遇到「目前層級:13.4 db」之類的字串。其中僅對數值感興趣。正規表示式 (RegEx) 為此任務提供了一個簡單的解決方案。
RegEx 方法
如果您的浮點數總是以「a.b」形式出現,您可以利用下列正規表示式模式:
re.findall("\d+\.\d+", "Current Level: 13.4db.")
此模式將擷取包含一個或多個數字的任何數字序列,後面接著一個小數點,然後是一位或多位數字。在我們的範例中,它將返回字串“13.4”。
用於穩健擷取的高階正規表示式
為了獲得更大的彈性,請考慮以下模式:
re.findall(r"[-+]?(?:\d*\.*\d+)", "Current Level: -13.2db or 14.2 or 3")
此模式處理更廣泛的浮點表示,包括:
它將傳回所有符合數字的清單:['-13.2', '14.2', '3'].
直接轉換進行驗證
或者,您可以直接將令牌轉換為浮點數以驗證使用者輸入:
user_input = "Current Level: 1e100 db" for token in user_input.split(): try: print(float(token), "is a float") except ValueError: print(token, "is something else")
此程式碼嘗試將輸入字串中的每個標記轉換為浮點數,並列印該標記是否是有效的浮點數
透過利用適合您的特定要求的適當方法,您可以以所需的精確度和靈活性有效地從字串中提取浮點數。
以上是如何在Python中高效率地從字串中提取浮點數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!