Python正则表达式入门:基础符号与re模块实战
本文介绍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个括号内的内容,依此类推。

总结
本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注本站的更多内容!
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













