注册 登录
编程论坛 ASP技术论坛

急:如何使用正则表达式分析HTML中的内容

发布于 2008-06-03 17:38, 1500 次点击
我从WORD中保存为HTML文件,其中含有以下一些代码:
<Html>
...
<v:imagedata o:title="1" src = "file:///C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/msoclip1/02/clip_image001.jpg"> </v:imagedata>
...
<v:imagedata o:title="2" src ="file:///C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/msoclip1/02/clip_image003.jpg"> </v:imagedata>
...
<v:imagedata o:title="3" src = "file:///C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/msoclip1/02/clip_image004.jpg"> </v:imagedata>
...
<v:imagedata o:title="4" src = "file:///C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/msoclip1/02/clip_image006.jpg"> </v:imagedata>
...
</Html>
我有以下分析代码:
'------------------------------
On Error Resume next
Dim sGetimgs
sGetimgs = ""
Set objRegExp = New Regexp'设置配置对象
objRegExp.IgnoreCase = True'忽略大小写
objRegExp.Global = True'设置为全文搜索
objRegExp.Pattern = " <v:imagedata.+?>"'为了确保能准确地取出图片地址所以分为两层配置:首先找到里面的 <v:imagedata>标签,然后再取出里面的图片地址后
Set Matches =objRegExp.Execute(HtmlContent)  'HtmlContent是我已经取得的全部HTML代码,现在想做分析
For Each Match in Matches
Set objRegExp1 = New Regexp
objRegExp1.IgnoreCase = True
objRegExp1.Global = True
objRegExp1.Pattern = "file:///.+/?"""  '取出里面的地址
set mm=objRegExp1.Execute(Match.Value)
For Each Match1 in mm
sGetimgs = sGetimgs & " &brvbar; &brvbar;" & left(Match1.Value,len(Match1.Value)-1)  '把里面的地址串起来备用
Next
Next
response.write " <br> <hr>" & sGetimgs & " <br> <hr>"
我想得到的结果是
sGetimgs="C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/msoclip1/02/clip_image001.jpg &brvbar; &brvbar;C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/msoclip1/02/clip_image003.jpg &brvbar; &brvbar;C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/msoclip1/02/clip_image004.jpg &brvbar; &brvbar;C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/msoclip1/02/clip_image006.jpg"
我该怎么修改上面的代码,求各位帮忙!

[[it] 本帖最后由 cxmz 于 2008-6-3 17:41 编辑 [/it]]
6 回复
#2
multiple19022008-06-03 17:42
一,现在的代码能不能取出来?如果取不出来是哪层出了问题?提示出错了吗?
二,变量都定义了吗?
三,可以考虑用XMLDOM对象来提取。
#3
2008-06-03 17:45
直接没有反映,好象正则表达式匹配不对,我想完成的功能就是取出本地图片,然后上传到服务器,然后在替换HTML代码
#4
2008-06-03 17:48
该定义的都定义了,我把所有HTML代码都交给了变量HtmlContent了
#5
multiple19022008-06-03 17:52
我觉得不需要用regexp……就用VBScript的Instr函数啊 Mid函数啊就出来了
#6
2008-06-03 18:14
Instr函数只能判断字符串第一次出现的位置呀,我这儿在HTML源代码中有好几个要取出来的
1