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中文网其他相关文章!