脚本之家,脚本语言编程技术及教程分享平台!
分类导航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服务器之家 - 脚本之家 - Python - Python正则表达式的另类解答

Python正则表达式的另类解答

2022-09-25 11:26MrL_JJ Python

这篇文章主要为大家详细介绍了Python正则表达式,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助

一、正则表达式的作用

提示:正则表达式是一段特殊的字符串,它表示的是一段有规律的信息。如果我们想从一段文字中提取想要的内容,就可以通过正则表达式来方便的帮助我们提取。

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

二、正则表达式基本符号

1.点号“.”

“.”表示的是匹配除了换行符以外的任何一个字符,包括但不限于英文字母、数字、汉字、英文标点符号和中文标点符号。

2.星号“”

“”表示匹配它前面的一个子表达式(普通字符、另一个或几个正则表达式符号)0次到无限次。

3.问号“?”

“?”表示匹配它前面的子表达式0次或者1次。注意,这里的问号是英文问号。

4.数字“\d”

“\d”在正则表达式里表示一位数字,“\d”由反斜杠和字母d构成的,但是要把“\d”看成一个正则表达式符号整体。

5.小括号“()”

小括号可以把括号里面的内容提取出来。

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

Python自带一个非常强大的的正则表达式模块,名字为“re”,也就是“regular expression”的首字母缩写。在Python中需要先使用导入的语句:import re 导入这个模块再进行使用。

1.findall函数

findall的函数原型为:re.findall(pattern, string, flags=0)

pattern表示正则表达式,string表示原来的字符串,flags表示一些特殊功能的标志。 这个参数是可以省略的。当不省略的时候,具有一些辅助功能,例如忽略大小写、忽略换行符等。

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

findall返回的结果是一个列表,包含了所有的匹配到的结果:

Python正则表达式的另类解答

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

re.search(pattern, string, flags=0)用法和findall()的用法一样,但是search()只会返回第1个满足要求的字符串。对于从超级大的文本里面只找第1个数据特别有用,可以大大提高程序的运行效率。

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

对于结果,如果匹配成功,则是一个正则表达式的对象;如果没有匹配到任何数据,就是None。 如果需要得到匹配到的结果,则需要通过.group()这个方法来获取里面的值。group()的参数最大不能超过正则表达式里面括号的个数。参数为1表示读取第1个括号中的内容,参数为2表示读取第2个括号中的内容,以此类推。

Python正则表达式的另类解答

总结

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

原文链接:https://blog.csdn.net/weixin_44901043/article/details/121080713

延伸 · 阅读

精彩推荐