标题: [文本处理] 批处理怎样提取多个文本内的网址? [打印本页]
作者: ccfxy 时间: 2010-12-12 10:27 标题: 批处理怎样提取多个文本内的网址?
我电脑上现在有好多个 txt文件 download(1).txt 到 download(10000).txt
里面的内容如下
download(1).txt 内容
<br><b>文件名称:</b><u>AN7173NK.gif</u><br><b>文件大小:</b>11KB<br><b>下载地址:
http://www.jddl.net/hm/download/gif/chip/c/CXA11s33.gif
download(2).txt 内容
<br><b>文件名称:</b><u>CXA1191M.gif</u><br><b>文件大小:</b>12KB<br><b>下载地址:http://www.jddl.net/hm/download/gif/chip/c/CXA1191M.gif
其他文本内容都大概相似,但是下载地址后缀不都是gif 有pdf的 有rar的。现在想把所有文本里的网址都提取出来 放到一个新的文本里一行显示一个地址,也就是这样
http://www.jddl.net/hm/download/gif/chip/c/CXA11s33.gif
http://www.jddl.net/hm/download/gif/chip/c/CXA1191M.gif
希望有高人能帮忙解决下
作者: hanyeguxing 时间: 2010-12-12 11:15
你提供的两个样本不一致,最好把一个文本直接贴上来或传上来。。。
作者: broly 时间: 2010-12-12 12:15
VBS- 'VBS用正则表达式提取网址
- 'CODE BY Broly
- Dim fso,re,f,txt,objm
- Set fso=CreateObject("Scripting.Filesystemobject")
- Set re=New RegExp
- re.Global=True
- re.IgnoreCase=True
- re.Pattern="http://www\.jddl\.net/hm/download/gif/chip/c/\w+.\w+"
- For i=1 To 2
- Set f=fso.OpenTextFile("download("&i&").txt",1,false)
- Set objm=re.Execute(f.ReadAll)
- For Each ma In objm
- s=ma.Value & Chr(13) & Chr(10) & s
- Next
- f.Close
- Next
- Set txt=fso.CreateTextFile("url.txt",true)
- txt.WriteLine(s)
- txt.Close
- WScript.Echo "已保存为url.txt" '此行可以删了
复制代码
作者: ccfxy 时间: 2010-12-12 12:31
用3楼的办法已经解决了 多谢 3楼 这里真是个好地方
作者: broly 时间: 2010-12-12 12:40 标题: 回复 4楼 的帖子
对了,你把For i=1 To 2
改为For i=1 To 10000吧。
我测试时用2个文本测试。你的文本是有10000个
忘记修改回来了
作者: ccfxy 时间: 2010-12-12 12:46
又发现个问题 那个网址目录结构有好多都不一样 而且文件名有中文的都提取不出来 不知还有什么方法解决不
作者: ccfxy 时间: 2010-12-12 12:47
http://www.jlgl.net/\w+/\w+/\w+/\w+/\w+.\w+ 我把网址改成这样了 但是有的目录层数不一样 也提取不出来 还有就是中文文件名无法提取
作者: broly 时间: 2010-12-12 13:04
- re.Pattern="http://www\.jddl\.net/.+\.\w+"
复制代码
作者: ccfxy 时间: 2010-12-12 13:42
全部搞定 多谢Broly
以后得好好学习学习
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |