找回密码
 加入
搜索
查看: 742|回复: 5

[AU3基础] 之前一个正则表达式的优化【已解决】

[复制链接]
发表于 2022-12-5 19:08:00 | 显示全部楼层 |阅读模式
本帖最后由 holley 于 2022-12-5 19:38 编辑

原贴来自这里:怎么正则提取网页内容【已解决】-已解决问题区-AUTOIT CN - Powered by Autoit中文论坛 (autoitx.com)

今天突然发现,火绒官网增加了一个arm64的下载链接,导致原代码自动获取的是arm64的下载地址
sysdiag-arm64-all-5.0.72.1-2022.12.04.1.exe

目前临时想到的方式是通过StringReplace将arm64去掉
需要怎么优化一下原正则表达式
StringRegExpReplace($sSource, '(?i)^.+All":"(h.+?:)[\\/]+([\w.]+)[\\/]+([^"]+).+$', '\1/\/\2/\3')
来实现直接提取到的就是没有arm64的结果?
或者说想求助请教一下,在StringRegExpReplace里面有没有直接减去字符串的示例?我看官方帮助,太简化了- -~
毕竟不是程序员专业的,一般只有用到才会去了解



再次测试了一下,我用
All['"]:['"](h.+?:)[\\/]+([\w.]+)[\\/]+([^"]+).+["']
获取的结果是对呢,但拼接上(?i)^.+和.+$就出错了,是不是我还没有真正理解这些符号组合的意思?


我好像拼出来了
^.+urlAll":"(h.+?:)[\\/]+([\w.]+)[\\/]+([^"]+).+$

发表于 2022-12-5 20:47:25 | 显示全部楼层
回头火绒再出个linux版本或者再出个mac版本之类的,或者调整下输出你又得重写了,直接JSON处理,不受影响
#include "Includes\json.au3"

Local $oHTTP = ObjCreate('WinHttp.WinHttpRequest.5.1')
$oHTTP.Open('GET', 'http://www.huorong.cn/versionShow.php', False)
$oHTTP.Send()
Local $Result = BinaryToString($oHTTP.ResponseBody, 4)
Local $json = Json_Decode($Result)
MsgBox(0, '', Json_Get($json, '.urlAll'))

评分

参与人数 2金钱 +80 收起 理由
bfgxp + 40 很给力!
holley + 40 很给力!找了好几个json,有个能用!

查看全部评分

 楼主| 发表于 2022-12-6 09:13:16 | 显示全部楼层
繁星 发表于 2022-12-5 20:47
回头火绒再出个linux版本或者再出个mac版本之类的,或者调整下输出你又得重写了,直接JSON处理,不受影响
...

多谢,,我重新改下碼
 楼主| 发表于 2022-12-6 09:27:31 | 显示全部楼层
繁星 发表于 2022-12-5 20:47
回头火绒再出个linux版本或者再出个mac版本之类的,或者调整下输出你又得重写了,直接JSON处理,不受影响
...

感谢。已按你的方式实现基础效果,还想请教一下,怎么实现下载到的文件名就是下载地址中显示的文件名?是使用字符串截取还是要怎么修改下参数?
发表于 2022-12-6 10:23:49 | 显示全部楼层
holley 发表于 2022-12-6 09:27
感谢。已按你的方式实现基础效果,还想请教一下,怎么实现下载到的文件名就是下载地址中显示的文件名?是 ...

Json_Get($json,'.allName')  allname就是程序文件名

评分

参与人数 1金钱 +10 收起 理由
holley + 10 赞一个!实测有效,,刚还在测试正则取文件.

查看全部评分

发表于 2022-12-6 15:29:11 | 显示全部楼层
繁星 发表于 2022-12-5 20:47
回头火绒再出个linux版本或者再出个mac版本之类的,或者调整下输出你又得重写了,直接JSON处理,不受影响
...

高人啊,学习了,我做系统的一直推荐火绒杀毒软件,可是火绒官方把下载地址搞得越来越复杂,这下好了了。
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-4-26 13:39 , Processed in 0.076071 second(s), 20 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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