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

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

本文介绍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 相关产品和应用

全部下载

专题列表