[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文本处理] 批处理如何提取文本中的网址?

如何提取文本中的网址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后面的图片网址都提出来  如何做呢  谢谢~

  论坛会对一些字符进行转码导致原文走形,请在顶楼以附件方式上传全文。
尺有所短寸有所长,学好批处理没商量;
考虑问题复杂化,解决问题简洁化。

心在天山,身老沧州。

TOP

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后面的图片网址都提出来  如何做呢  谢谢~

TOP

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /f "tokens=1* delims==" %%i in (a.txt) do (
  4. set url=%%~j
  5. if not "!url!"=="" echo !url!
  6. )
  7. pause
复制代码

TOP

请下载附件,解压缩后运行其中的VBS文件!

VBS程序源代码:
  1. Set FSO=CreateObject("Scripting.FileSystemObject")
  2. '/*/////////////////////////////////////////////////////////
  3. '*MadeTime: 2009-10-21
  4. '*LastModify: 2009-03-20
  5. '*功能: 提取内容正则表达式
  6. '*参数: 正则表达式;待处理数据对象
  7. '**********************************************************
  8. Function MyRegExp(Patrn,Strng)
  9. Set RegEx1=New RegExp
  10. With RegEx1
  11. .Pattern = Patrn
  12. .IgnoreCase=True     
  13. .Global=True
  14. End With
  15. Set Matches =RegEx1.Execute(strng)
  16. For i=0 to Matches.Count-1
  17. MyRegExp=MyRegExp & i+1 & "  " & Matches(i).subMatches(0) & VBCRLF
  18. Next
  19. End Function
  20. '/*/////////////////////////////////////////////////////////
  21. '*MadeTime: 2010-03-20
  22. '*LastModify: 2010-03-20
  23. '*功能: 读取文本文件全部内容
  24. '*参数: 当前目录文本文件
  25. '**********************************************************
  26. Function ReadFile(FileName)
  27. Set File=FSO.OpenTextFile(FileName,1,1)
  28. ReadFile=File.ReadAll
  29. Set File=nothing
  30. End Function
  31. msgbox "scr地址:" & vbcrlf & MyRegExp("src=[""']?(http.*gif)",ReadFile("test.txt"))
  32. msgbox "BG地址:" & vbcrlf & MyRegExp("background=[""']?(http.*gif)",ReadFile("test.txt"))
  33. Set FSO=nothing
复制代码

TOP

  1. grep -o "http://.*\.gif" a.txt
复制代码
Do All in Command Line

TOP

谢谢sysplay的解答  但你的代码只是读了文本  并没有把网址提取出来~

谢谢管理员的解答   但运行提示输入超出了文件尾   代码  :800A003E错误

谢谢batcoder的解答    但你的代码运行后什么都没有~~

TOP

我在网上找到这个代码

TOP

我在网上找到这个代码
@(type *.txt|wfr /r:"(.*src\=\"^|\"\s.*)" /t|findstr "^http.*\.gif$">list.txt)&&start list.txt

可以提取到SRC后的网址  但background后的网址就不能提取了  

请帮忙修改一下  谢谢~

TOP

回复 7楼 的帖子

你确定自己有grep.exe吗?
Do All in Command Line

TOP

原帖由 hhz520 于 2010-3-20 20:50 发表
谢谢管理员的解答   但运行提示输入超出了文件尾   代码  :800A003E错误


请下载附件,解压缩后直接运行其中的VBS(不要保存运行上面给的VBS代码),还要注意不要删除同目录下的test.txt

TOP

回复 9楼 的帖子

网上找的代码需要自己看懂才能活学活用啊,在wfr里面只过滤.*src当然找不到background啦。
Do All in Command Line

TOP

灵活运用sed会比较好处理
  1. sed "/http/!d;s/.*\(http:.*.gif\).*/\1/g" a.txt
复制代码

TOP

返回列表