找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 12154|回复: 2

[已解决]VBS正则表达式提取

[复制链接]
发表于 2009-4-18 04:13:30 | 显示全部楼层 |阅读模式
1.txt中的内容为
dsaf="ftp://abc.dsfds.html"
sdfsdafs[论坛禁用语言]sdff
fsdafs
dsadf="ftp://abc.dsfds.html"

我想提取出每行中ftp://至.html之间的字符,可以遍历整个1.txt,
我使了readline,但每当其中任意一行不同时含用ftp://和.html就会出错
请高手教下我,正则好难呀,
十分感谢!

[ 本帖最后由 lxl13596 于 2009-4-18 14:37 编辑 ]

评分

参与人数 1PB +2 收起 理由
Batcher + 2 感谢主动给标题标注[已解决]字样

查看全部评分

发表于 2009-4-18 09:10:01 | 显示全部楼层
试试:
  1. Function RegExpTest(patrn, strng)
  2.    Dim regEx, Match, Matches   ' 建立变量。
  3.    Set regEx = New RegExp   ' 建立正则表达式。
  4.    regEx.Pattern = patrn   ' 设置模式。
  5.    regEx.IgnoreCase = True   ' 设置是否区分大小写。
  6.    regEx.Global = True   ' 设置全程可用性。
  7.    Set Matches = regEx.Execute(strng)   ' 执行搜索。
  8.    For Each Match in Matches      ' 遍历 Matches 集合。
  9.       vStr=mid(Match.value,7,Len(Match.value)-11)
  10.       RetStr = RetStr & vStr & vbcrlf
  11.    Next
  12.    RegExpTest = RetStr
  13.    set regEx=nothing
  14. End Function
  15. set FSO=Wscript.CreateObject("Scripting.FileSystemObject")
  16. set F=FSO.opentextfile("1.txt",1)
  17. txt=f.readall
  18. MsgBox(RegExpTest("ftp://.*\.html", txt))
  19. set FSO=nothing
复制代码
当然,这里的正则结果是用匹配集合实现,也可以用replace来实现,会更简洁...
 楼主| 发表于 2009-4-18 14:36:34 | 显示全部楼层

多多感谢管理员的支持

谢谢!愿咱们论坛越来越强大!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-17 02:52 , Processed in 0.010502 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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