关于一段代码中截取指定的代码问题,请高手来给点思路!谢谢!

fredtaylor 2008-04-07 12:16:04
就是类似采集中的获取内容的方法,在一段代码中,定义起始字符和结束字符,获取中间的代码段。

如果按传统的采集方法,使用数组,很容易解决。。但现在我想做成可以若干次获取,比如在代码中,我想获取<span>和</span>中间的代码,而页面中不止一个<span>标签,所以就需要获取+判断了。

用数组方式会出现下标越界现象。。请问各位大虾有其他好方法吗?

或者不用ASP,用JS是否可以实现?传统的JS屏蔽标签的脚本只能获取标签,而不能获取标签内的字符。。

请各位给个程序小段或思路!
...全文
75 点赞 收藏 5
写回复
5 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
使用正则,正则在ASP或者JS中一样都可以截取屏蔽
回复
苍白之月 2008-04-07
你想做的是Web采集吧

阅读window.document对象的方法 可以遍例一个页面的全部对象
回复
文盲老顾 2008-04-07
<%
' ExpStr(vStr,vReg,sStr)
' 返回正则匹配结果
'
' #####################################################
'
' vStr 为原始字符串
' vReg 为正则表达式
' sStr 为分隔符(尽量使用原始字符串中不会出现的字符串)
'
' #####################################################
'
' a = ExpStr("<a href=Functions.asp>函数库地址</a><br><a href=http://www.x-bs.com>文盲的演示代码</a>","<a[^<>]*>[^<>]*?(</a>)","||")
' IsArray(a) ' Return True
' UBound(a) ' Return 1
' a(0) ' Return "<a href=Functions.asp>函数库地址</a>"
' a(1) ' Return "<a href=http://www.x-bs.com>文盲的演示代码</a>"

Function ExpStr(vStr,vReg,sStr)
Dim Re,Matchs,Item,tStr
tStr = ""
Set Re = New RegExp
Re.Pattern = vReg
Re.IgnoreCase = True
Re.Global = True
If Re.Test(vStr) Then
Set Matchs = Re.Execute(vStr)
For Each Item In Matchs
tStr = tStr & Item.Value & sStr
Next
tStr = Split(Left(tStr,Len(tStr) - Len(sStr)),sStr)
End If
Set Re = Nothing
ExpStr = tStr
End Function
%>
回复
Alices 2008-04-07

'//以下代码徒手写的,仅仅是大概思路

Do
IntBegin =Instr(StrWebCode,"<span>") + Len("<span>")

If IntBegin < Len("<span>") then Exit DO

IntEnd = Instr(StrWebCode,"</span>")

IF IntEnd < 0 Then Go To Err: '//OR Exit DO

StrAllGet = StrAllGet & Mid(StrWebCode,IntBegin,IntEnd-IntBengin) & "##"

Loop

LastArray=split(StrAllGet,"##") '//这样就不会上下标越界,而且可以得到所有<span>值.
回复
fredtaylor 2008-04-07
不是做采集。。直说吧,就是想把一段代码中一些标签给屏蔽了,并且标签中的内容也一起屏蔽。。。
回复
相关推荐
发帖
ASP
创建于2007-09-28

2.8w+

社区成员

ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
申请成为版主
帖子事件
创建了帖子
2008-04-07 12:16
社区公告
暂无公告