标题: [文本处理] 批处理如何提取文本中的网址? [打印本页]
作者: hhz520 时间: 2010-3-20 08:09 标题: 批处理如何提取文本中的网址?
如何提取文本中的网址src="http://xxxxx.cn/201003/20/128/o_16960_19426_tce9595945c3dcd8ea2a7.gif"
></td></tr></tbody></table></td></tr>
<tr>
<td background=http://xxxxx.cn/201003/20/128/o_16960_19426_t45d66d96bee29cfc3178.gif
>
</td>
我想把SRC和background后面的图片网址都提出来 如何做呢 谢谢~
作者: namejm 时间: 2010-3-20 12:27
论坛会对一些字符进行转码导致原文走形,请在顶楼以附件方式上传全文。
作者: hhz520 时间: 2010-3-20 13:42
src="http://xxxxx.cn/201003/20/128/o_16960_19426_tce9595945c3dcd8ea2a7.gif"
></td></tr></tbody></table></td></tr>
<tr>
<td background=http://xxxxx.cn/201003/20/128/o_16960_19426_t45d66d96bee29cfc3178.gif
>
</td>
我想把SRC和background后面的图片网址都提出来 如何做呢 谢谢~
作者: sysplay 时间: 2010-3-20 17:15
- @echo off
- setlocal enabledelayedexpansion
- for /f "tokens=1* delims==" %%i in (a.txt) do (
- set url=%%~j
- if not "!url!"=="" echo !url!
- )
- pause
复制代码
作者: youxi01 时间: 2010-3-20 17:27
请下载附件,解压缩后运行其中的VBS文件!
VBS程序源代码:- Set FSO=CreateObject("Scripting.FileSystemObject")
- '/*/////////////////////////////////////////////////////////
- '*MadeTime: 2009-10-21
- '*LastModify: 2009-03-20
- '*功能: 提取内容正则表达式
- '*参数: 正则表达式;待处理数据对象
- '**********************************************************
- Function MyRegExp(Patrn,Strng)
- Set RegEx1=New RegExp
- With RegEx1
- .Pattern = Patrn
- .IgnoreCase=True
- .Global=True
- End With
- Set Matches =RegEx1.Execute(strng)
- For i=0 to Matches.Count-1
- MyRegExp=MyRegExp & i+1 & " " & Matches(i).subMatches(0) & VBCRLF
- Next
- End Function
-
- '/*/////////////////////////////////////////////////////////
- '*MadeTime: 2010-03-20
- '*LastModify: 2010-03-20
- '*功能: 读取文本文件全部内容
- '*参数: 当前目录文本文件
- '**********************************************************
- Function ReadFile(FileName)
- Set File=FSO.OpenTextFile(FileName,1,1)
- ReadFile=File.ReadAll
- Set File=nothing
- End Function
- msgbox "scr地址:" & vbcrlf & MyRegExp("src=[""']?(http.*gif)",ReadFile("test.txt"))
- msgbox "BG地址:" & vbcrlf & MyRegExp("background=[""']?(http.*gif)",ReadFile("test.txt"))
- Set FSO=nothing
复制代码
作者: BatCoder 时间: 2010-3-20 18:32
- grep -o "http://.*\.gif" a.txt
复制代码
作者: hhz520 时间: 2010-3-20 20:50
谢谢sysplay的解答 但你的代码只是读了文本 并没有把网址提取出来~
谢谢管理员的解答 但运行提示输入超出了文件尾 代码 :800A003E错误
谢谢batcoder的解答 但你的代码运行后什么都没有~~
作者: hhz520 时间: 2010-3-20 20:51
我在网上找到这个代码
作者: hhz520 时间: 2010-3-20 20:52
我在网上找到这个代码
@(type *.txt|wfr /r:"(.*src\=\"^|\"\s.*)" /t|findstr "^http.*\.gif$">list.txt)&&start list.txt
可以提取到SRC后的网址 但background后的网址就不能提取了
请帮忙修改一下 谢谢~
作者: BatCoder 时间: 2010-3-20 21:21 标题: 回复 7楼 的帖子
你确定自己有grep.exe吗?
作者: youxi01 时间: 2010-3-20 21:23
原帖由 hhz520 于 2010-3-20 20:50 发表
谢谢管理员的解答 但运行提示输入超出了文件尾 代码 :800A003E错误
请下载附件,解压缩后直接运行其中的VBS(不要保存运行上面给的VBS代码),还要注意不要删除同目录下的test.txt
作者: BatCoder 时间: 2010-3-20 21:23 标题: 回复 9楼 的帖子
网上找的代码需要自己看懂才能活学活用啊,在wfr里面只过滤.*src当然找不到background啦。
作者: inittab 时间: 2010-3-20 22:02
灵活运用sed会比较好处理- sed "/http/!d;s/.*\(http:.*.gif\).*/\1/g" a.txt
复制代码
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |