首頁 >後端開發 >Python教學 >Python 字串數字提取:正規表示式與 isdigit() - 哪種方法最好?

Python 字串數字提取:正規表示式與 isdigit() - 哪種方法最好?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-12-25 10:47:39617瀏覽

Python String Number Extraction: Regex vs. isdigit() - Which Method is Best?

如何在Python 中從字串中提取數字:正則表達式與isdigit()

處理同時包含文字和數字的文本資料時,可以從字符串中提取數值所必需的。在 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() 方法方法

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中文網其他相關文章!

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