正则表达式 findall的扩展

Posted grave-seven

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了正则表达式 findall的扩展相关的知识,希望对你有一定的参考价值。

技术分享图片
 1 # find扩展,对于分组的问题
 2 # 仔细看下面这句代码,图片的地址有两个,我只想取一个
 3 # 但这行代码并不能满足需求 会打印出两个地址
 4 image_str2 = """<img alt="达浪妹妹哟的直播" data-original="https://rpic.douyucdn.cn/live-cover/appCovers/2018/08/22/5376712_20180822144021_small.jpg" src="https://rpic.douyucdn.cn/live-cover/appCovers/2018/08/22/5376712_20180822144021_small.jpg" width="283" height="163" class="JS_listthumb" style="display: block;">"""
 5 print(re.findall(https?://.+?.jpg, image_str2))
 6 # 解决办法: 匹配的时候在前面再点关键字用来区分
 7 # 再用括号 括起来需要的数据,findall在里面写分组后会取分组的数据
 8 print(re.findall("""data-original="(https?://.+?.jpg)""", image_str2))
 9 print(re.findall("""src="(https?://.+?.jpg)""", image_str2))
10 # findall会把所有的分组数据放到一个元组,前提分组要两个或者两个以上
11 print(re.findall("""(src=)"(https?://.+?.jpg)""", image_str2))
View Code
打印结果:
[‘https://rpic.douyucdn.cn/live-cover/appCovers/2018/08/22/5376712_20180822144021_small.jpg‘, ‘https://rpic.douyucdn.cn/live-cover/appCovers/2018/08/22/5376712_20180822144021_small.jpg‘]
[‘https://rpic.douyucdn.cn/live-cover/appCovers/2018/08/22/5376712_20180822144021_small.jpg‘]
[‘https://rpic.douyucdn.cn/live-cover/appCovers/2018/08/22/5376712_20180822144021_small.jpg‘]
[(‘src=‘, ‘https://rpic.douyucdn.cn/live-cover/appCovers/2018/08/22/5376712_20180822144021_small.jpg‘)]

  

以上是关于正则表达式 findall的扩展的主要内容,如果未能解决你的问题,请参考以下文章

正则表达式re.findall

Python正则表达式中的re.S的作用

Python正则表达式中的re.S的作用

正则-flags参数扩展

python:非正则表达式等价于 re.findall

为啥使用正则表达式 finditer() 而不是 findall()