Python 正则取数字

正则表达式是一种强大的文本匹配工具,通过定义模式来搜索、匹配和替换字符串。在很多编程语言中都有正则表达式的支持,Python 也不例外。在本文中,我们将详细讨论如何使用正则表达式来提取字符串中的数字。
什么是正则表达式?
正则表达式是一种描述字符串模式的方法,用于在文本中进行搜索和匹配。它可以通过一系列的字符,并按照特定的规则进行匹配操作。
在 Python 中,我们可以使用 re 模块来操作正则表达式。该模块包含了多个函数,最常用的是 re.match()、re.search()、re.findall() 和 re.sub()。
提取字符串中的数字
在很多实际问题中,我们需要从字符串中提取数字,并进行进一步的处理。接下来我们将介绍几种常见的提取数字的方法。
使用 \d+ 匹配正则表达式
正则表达式 \d+ 可以用来匹配一个或多个数字。下面是一个简单的示例代码:
import re
text = "There are 123 apples and 456 bananas."
numbers = re.findall(r'\d+', text)
print(numbers)
运行以上代码,输出为:
['123', '456']
这里我们使用 re.findall() 函数来找到字符串 text 中的所有数字,并将其存储在列表 numbers 中。
使用 \d{} 匹配指定数量的数字
如果我们只想提取特定长度的数字,可以使用 \d{}。例如,如果我们想提取长度为3的数字,可以使用 \d{3}。下面是一个示例代码:
import re
text = "2023 is the year of 4 numbers."
numbers = re.findall(r'\d{3}', text)
print(numbers)
运行以上代码,输出为:
['202', '4']
使用 \d+\.\d+ 提取小数
如果需要提取包含小数点的数字,我们可以使用 \d+\.\d+。例如:
import re
text = "The price is $3.55."
numbers = re.findall(r'\d+\.\d+', text)
print(numbers)
运行以上代码,输出为:
['3.55']
使用 \d+-\d+ 提取区间
有时候我们需要提取数字的区间,可以使用 \d+-\d+。例如:
import re
text = "The temperature ranges from -5 to 10 degrees."
numbers = re.findall(r'-?\d+-\d+', text)
print(numbers)
运行以上代码,输出为:
['-5-10']
总结
本文介绍了如何使用 Python 中的正则表达式来提取字符串中的数字。通过简单的示例代码,我们学习了几种常见的提取数字的模式。
极客笔记