Python正则表达式的另类解答
作者:MrL_JJ
一、正则表达式的作用
提示:正则表达式是一段特殊的字符串,它表示的是一段有规律的信息。如果我们想从一段文字中提取想要的内容,就可以通过正则表达式来方便的帮助我们提取。
提示:以下是本篇文章正文内容,下面案例可供参考
二、正则表达式基本符号
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返回的结果是一个列表,包含了所有的匹配到的结果:
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个括号中的内容,以此类推。
总结
本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注脚本之家的更多内容!