處理同時包含文字和數字的文本資料時,可以從字符串中提取數值所必需的。在 Python 中執行此任務的兩種常見方法是正規表示式和 isdigit() 方法。
正規表示式 (regex) 提供了一種強大的方法來匹配字串中的模式。要提取數字,您可以使用 d 模式,它會匹配一位或多位數字。考慮以下範例:
import re line = "hello 12 hi 89" numbers = re.findall(r'\d+', line) print(numbers) # Output: [12, 89]
此正規表示式符合數字「12」和「89」序列並將它們傳回作為清單。要只匹配由單字邊界(例如空格、句點或逗號)分隔的數字,可以使用b 模式:
numbers = re.findall(r'\b\d+\b', line) print(numbers) # Output: [12, 89]
isdigit () 方法提供了另一種從字串中提取數字的方法。對於數字字符,此方法傳回 True,否則傳回 False。要使用它,您可以迭代字串並檢查每個字元:
line = "hello 12 hi 89" numbers = [] for char in line: if char.isdigit(): numbers.append(int(char)) print(numbers) # Output: [12, 89]
在此範例中,該方法迭代字串中的每個字符,使用isdigit() 檢查它是否是數字,然後如果是,則將其附加到數字列表中。
通常,使用正規表示式從字串而不是使用 isdigit() 方法。正規表示式可以快速匹配複雜的模式,而 isdigit() 需要迭代整個字串。
如果您還需要提取負整數,正規表示式方法提供了一個更簡單的解決方案。只需使用 r'-d ' 來匹配負數。然而,使用 isdigit() 需要更複雜的邏輯來處理負號。
以上是Python 字串數字提取:正規表示式與 isdigit() - 哪種方法最好?的詳細內容。更多資訊請關注PHP中文網其他相關文章!