欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Python正则表达式的另类解答

程序员文章站 2022-03-02 11:37:42
目录一、正则表达式的作用二、正则表达式基本符号三、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表示一些特殊功能的标志。 这个参数是可以省略的。当不省略的时候,具有一些辅助功能,例如忽略大小写、忽略换行符等。

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个数据特别有用,可以大大提高程序的运行效率。

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

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

Python正则表达式的另类解答

总结

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