之前一个正则表达式的优化【已解决】
本帖最后由 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.]+)[\\/]+([^"]+).+$
回头火绒再出个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')) 繁星 发表于 2022-12-5 20:47
回头火绒再出个linux版本或者再出个mac版本之类的,或者调整下输出你又得重写了,直接JSON处理,不受影响
...
多谢,,我重新改下碼 繁星 发表于 2022-12-5 20:47
回头火绒再出个linux版本或者再出个mac版本之类的,或者调整下输出你又得重写了,直接JSON处理,不受影响
...
感谢。已按你的方式实现基础效果,还想请教一下,怎么实现下载到的文件名就是下载地址中显示的文件名?是使用字符串截取还是要怎么修改下参数? holley 发表于 2022-12-6 09:27
感谢。已按你的方式实现基础效果,还想请教一下,怎么实现下载到的文件名就是下载地址中显示的文件名?是 ...
Json_Get($json,'.allName')allname就是程序文件名 繁星 发表于 2022-12-5 20:47
回头火绒再出个linux版本或者再出个mac版本之类的,或者调整下输出你又得重写了,直接JSON处理,不受影响
...
高人啊,学习了,我做系统的一直推荐火绒杀毒软件,可是火绒官方把下载地址搞得越来越复杂,这下好了了。
页:
[1]