首页 >后端开发 >Python教程 >Python 字符串数字提取:正则表达式与 isdigit() - 哪种方法最好?

Python 字符串数字提取:正则表达式与 isdigit() - 哪种方法最好?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-12-25 10:47:39542浏览

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