鱼C论坛

 找回密码
 立即注册
查看: 487|回复: 4

关于re中排序的问题

[复制链接]
发表于 2018-10-25 00:17:15 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
是这样子的,前段时间写过一个爬虫 爬视频网站 有个参数是纯数字 比方video1:451  video2:271 video3:681 这里只是简单举个例,总之数字是没有规律的,但是我在用re.findall(video:(\d+))的时候python自作聪明的给我按ascii的值排了序,这样爬下来视频因为这个重要参数位置不对,就变成了东一个西一个视频,如何避免这个问题?记得以前开小甲鱼老师视频的时候小甲鱼提到过,但是已经不记得是在哪里讲的,有没有鱼油知道该怎么弄?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-10-25 00:36:46 | 显示全部楼层
没有听明白你的问题
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-10-25 01:09:55 | 显示全部楼层
yjsx86 发表于 2018-10-25 00:36
没有听明白你的问题

就是比方说 对一个a字典下有个url_list 视频1的参数比方说是1111,视频2的参数是0000,视频3的参数2222,我需要用这个参数来打开网站 如www.baidu.com/1111  但是你用re.findall去匹配的时候,会显示[0000,1111,2222],但是按照视频顺序的应该是[1111,0000,2222]
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-10-25 01:29:45 | 显示全部楼层
本帖最后由 yjsx86 于 2018-10-25 01:30 编辑
import random, re

text = ''
for i in range(10):
    temp = 'video:%d  ' % random.randint(100,1000)
    text += temp

print(text)

comp = re.compile(r'video:(\d{3})')
print(comp.findall(text))

捕获.PNG
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-10-25 11:18:33 | 显示全部楼层
网页是什么顺序,捕获就是什么顺序,除非你捕获错了,你想说的是解除子组?
用(?:)子组括号里前面加上?:
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-7-8 11:33

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表