首页 >后端开发 >Python教程 >正则表达式还是'isdigit()”?哪个最适合在 Python 中从字符串中提取数字?

正则表达式还是'isdigit()”?哪个最适合在 Python 中从字符串中提取数字?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-12-20 04:00:10299浏览

Regex or `isdigit()`? Which is Best for Extracting Numbers from Strings in Python?

Python 中从字符串中提取数字

从字符串中提取数字可以使用正则表达式或 isdigit() 方法来实现。让我们比较一下这些方法,以确定哪种方法更适合该目的。

正则表达式

正则表达式为匹配字符串中的模式提供了强大的工具。要提取数字,您可以使用以下正则表达式:

r'\d+'

此表达式匹配包含一位或多位十进制数字的字符串。例如,考虑字符串“hello 23 hi 33”。以下代码将使用正则表达式来提取数字:

import re

line = "hello 23 hi 33"

result = re.findall(r'\d+', line)

print(result)  # [23, 33]

isdigit() 方法

isdigit() 方法是一种更简单的方法来测试是否一个字符是一个十进制数字。但是,它不提供提取整个数字的能力。要使用 isdigit(),您需要逐个字符地遍历字符串:

line = "hello 23 hi 33"

result = []

for char in line:
    if char.isdigit():
        result.append(int(char))

print(result)  # [2, 3, 3]

比较

最终,正则表达式和 isdigit 之间的选择() 方法取决于具体用例。正则表达式为复杂的模式匹配和提取提供了更大的灵活性。它们还支持单词边界 (b) 等功能,用于匹配由空格包围的数字。

对于从字符串中简单提取数字,isdigit() 方法可能就足够了。然而,对于更复杂的情况或者需要提取整个数字,正则表达式提供了更全面的解决方案。

以上是正则表达式还是'isdigit()”?哪个最适合在 Python 中从字符串中提取数字?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn