Python正则表达式入门:基础符号与re模块实战

小满
小满
发布时间:2026-10-15| 6人浏览过
原创

本文介绍Python中正则表达式的基础概念与核心模块re。详细解析点号、星号、问号及数字匹配符等基础符号的含义,并深入讲解findall与search函数的原型、参数及返回值差异。通过提取文本中价格信息的代码示例,展示如何高效获取匹配结果及分组内容,帮助开发者快速掌握正则提取技巧。

一、正则表达式的作用

正则表达式本质上是一段具有特定规则的字符串,用于描述和匹配符合该规则的信息序列。当需要从大量文本中筛选或提取特定内容时,利用正则表达式可以高效、便捷地实现这一目标。

提示:以下是本篇文章正文内容,下面案例可供参考

二、正则表达式基本符号

1.点号“.”

点号“.”用于匹配除换行符以外的任意单个字符。其匹配范围广泛,涵盖英文字母、数字、汉字以及中英文标点符号等。

2.星号“”

星号“”用于匹配其前紧邻的子表达式(可以是普通字符或正则符号)零次至无限次。

3.问号“?”

问号“?”用于匹配其前紧邻的子表达式零次或一次。需注意,此处特指英文状态下的问号符号。

4.数字“\d”

在正则表达式中,“\d”代表匹配单个数字字符。虽然它由反斜杠和字母d组成,但在正则语法中应将其视为一个完整的匹配符号整体。

5.小括号“()”

小括号“()”的主要功能是将括号内的内容作为一个整体进行提取或分组。

三、Python自带正则表达式模块

Python内置了功能强大的正则表达式处理模块,名为“re”(regular expression的缩写)。在Python代码中使用该模块前,必须首先通过import re语句进行导入。

1.findall函数

findall函数的原型定义如下:re.findall(pattern, string, flags=0)

其中,pattern参数指定正则表达式模式,string参数为待处理的原始字符串,flags参数用于配置特殊功能标志(如忽略大小写、忽略换行符等),该参数为可选参数,省略时采用默认行为。

import re
text = '牛肉价格:70¥,九节虾价格:120¥,西兰花价格:5¥,马鲛鱼价格:40¥'
prices = re.findall('价格:(.*?)¥', text)
print('正则表达式返回的价格:{}'.format(prices))

findall函数的返回值是一个列表,其中包含所有成功匹配到的结果字符串。

2. search()的函数原型为:

re.search(pattern, string, flags=0)其基本用法与findall()类似,但search()仅返回第一个满足匹配条件的结果。在处理海量文本且只需定位首个目标时,使用search()能显著提升程序运行效率。

import re
text = '牛肉价格:70¥,九节虾价格:120¥,西兰花价格:5¥,马鲛鱼价格:40¥'
prices = re.search('价格:(.*?)¥', text)
print('正则表达式返回的价格:{}'.format(prices.group(1)))

关于返回值:若匹配成功,函数返回一个正则表达式匹配对象;若未找到任何匹配项,则返回None。要获取具体的匹配内容,需调用.group()方法。group()方法的参数值不得超过正则表达式中括号的数量;参数1表示提取第1个括号内的内容,参数2表示提取第2个括号内的内容,依此类推。

总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注本站的更多内容!

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

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 算法库。