1264092392 发表于 2021-1-16 11:31:24

关于正则表达式的提取问题

import re


gifw = """
    '<span class="DyListCover-zone">英雄联盟
</span><h3 class="DyListCover-intro" title=
"彭枪枪 :妙龄少女激情操作">彭枪枪 :妙龄少女激情操作</h3>', '<spanclass=
"DyListCover-hot is-template"><svg><use xlink:href="#icon-hot_8a57f0b">
</use></svg>10.4万</span><h2 class="DyListCover-user is-template"><svg>
<use xlink:href="#icon-user_c95acf8"></use></svg><div class="DyListCover
-userName is-template">彭枪枪OVO', '<span class="DyListCover-zone">英雄联盟
</span><h3 class="DyListCover-intro" title=
"黑玫腿精已就位,快上车~">黑玫腿精已就位,快上车~</h3>', '<span class=
"DyListCover-hot is-template"><svg><use xlink:href="#icon-hot_8a57f0b">
</use></svg>10.2万</span><h2 class="DyListCover-user is-template"><svg>
<use xlink:href="#icon-user_c95acf8"></use></svg><div class="DyListCover
-userName is-template">传闻中的何芊芊'
"""

d =r'DyListCover-zone"英雄联盟[\s\S]*?</use></svg>([\s\S]*?)</span><h2 class="'

f = re.findall(d,gifw)
print(f)
这是一个斗鱼主播的一个信息
问一下这个正则表达式如何提取上面的10.4万和彭枪枪OVO   还有10.4万和传闻中的何芊芊
我用了很多种方法都提取不出来

°蓝鲤歌蓝 发表于 2021-1-16 14:11:16

本帖最后由 °蓝鲤歌蓝 于 2021-1-16 14:18 编辑

html = gifw.replace("\n", "")
name = re.findall(r"<div class=\"DyListCover-userName is-template\">([^<]+)", html)
num = re.findall(r"</use></svg>(\d+.*?)<", html)

你的正则有点离谱,好好看看再写吧

1264092392 发表于 2021-1-16 15:19:01

°蓝鲤歌蓝 发表于 2021-1-16 14:11
你的正则有点离谱,好好看看再写吧

谢谢,我去自行研究研究

°蓝鲤歌蓝 发表于 2021-1-16 15:21:10

1264092392 发表于 2021-1-16 15:19
谢谢,我去自行研究研究

你的正则里 "英雄联盟" 右边少了个 "<"啊,不是叫你好好看看嘛,本来是可以匹配到 人数 的,这种东西尽量复制粘贴,不要手写,容易漏。

1264092392 发表于 2021-1-16 15:28:30

°蓝鲤歌蓝 发表于 2021-1-16 15:21
你的正则里 "英雄联盟" 右边少了个 "

初学初学.....   我的问题
页: [1]
查看完整版本: 关于正则表达式的提取问题