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 中的正则表达式来提取字符串中的数字。通过简单的示例代码,我们学习了几种常见的提取数字的模式。