Python正则表达式匹配数字:\d+与\b\d+\b的使用详解

Oliver
Oliver
发布时间:2026-10-12| 3人浏览过
原创

本文介绍Python中使用re模块进行数字匹配的方法。通过\d+可提取字符串中的数字片段,但会包含嵌入数字。若需识别纯数字,应使用\b\d+\b结合单词边界(空格、标点等)进行精确匹配,避免误识别字符串内的数字部分。

Python正则表达式基础概述

正则表达式是一种由特殊字符构成的序列,主要用于高效地检查字符串是否符合特定的模式匹配规则。

从Python 1.5版本开始,官方引入了re模块,该模块提供了符合Perl语言风格的正则表达式模式支持。

借助re模块,Python语言得以具备完整的正则表达式处理能力。

compile函数用于根据给定的模式字符串及可选的标志参数,构建一个正则表达式对象。该对象封装了一系列用于执行正则匹配和替换操作的方法。

此外,re模块还提供了与上述对象方法功能完全一致的独立函数,这些函数以模式字符串作为其第一个参数进行调用。

本章节重点讲解Python正则表达式03--字符串中匹配数字的具体应用。

import re
# \d+ 匹配字符串中的数字部分,返回列表
ss = 'adafasw12314egrdf5236qew'
num = re.findall('\d+',ss)
print(num)
#运行结果
#['12314', '5236']

使用\d+模式来匹配字符串中的数字部分。

补充说明:下文将介绍如何在Python正则表达式中找出字符串中的纯数字。

1、基础匹配方法

>>> import re
>>> re.findall(r'\d+', 'hello 42 I'm a 32 string 30')
['42', '32', '30']

然而,上述基础方法存在局限性,它会识别并提取字符串中非纯数字部分的数字内容。

>>> re.findall(r'\d+', "hello 42 I'm a 32 str12312ing 30")
['42', '32', '12312', '30']

2、精确识别纯数字

如果仅需匹配由单词边界(如空格、句号、逗号等分隔符)隔开的独立数字,可以使用\b进行边界限定。

>>> re.findall(r'\b\d+\b', "hello 42 I'm a 32 str12312ing 30")
['42', '32', '30']
>>> re.findall(r'\b\d+\b', "hello,42 I'm a 32 str12312ing 30")
['42', '32', '30']
>>> re.findall(r'\b\d+\b', "hello,42 I'm a 32 str 12312ing 30")
['42', '32', '30']

总结

以上内容介绍了Python字符串中匹配数字的正则表达式用法,希望对大家有所帮助。如有任何疑问,欢迎留言,小编会及时回复。感谢大家对本站的支持! 若您觉得本文对您有帮助,欢迎转载,请注明出处,谢谢!

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。