正则表达式问题。

dw2003 2007-04-09 04:16:17
我现在用VB要做一个抓取新闻数据的程序,但有些新闻是分几页的,如:http://news.sina.com.cn/c/2007-04-06/012212707617.shtml

所以在抓取下一页时必须把这个:<a style="FONT-SIZE: 14px" href="http://news.sina.com.cn/c/2007-04-06/012212708005.shtml">[下一页]</a>

中的hrf地址抓取出来,因为一般翻页<a,</a>,[下一页]都是特殊字符,可以通过正则表达式把url匹配出来,所以我用了:<a style=""FONT-SIZE: 14px"" href=""(.+)"">\[下一页\]</a>来匹配,我通过MTracer检测可以匹配到两个结果,而最后一个(即第二个)就是我要的url,但在vb中我不知道怎样通过RegExp.$1赋值到变量上,因为我一用RegExp.$1就出错,是不是vb无这个静态属性,请各位高手指教。
...全文
149 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
dw2003 2007-04-09
  • 打赏
  • 举报
回复
呵呵通过了.应该是
Set Elem = Match(0)
nexturl = Elem.SubMatches(0)

adverse 2007-04-09
  • 打赏
  • 举报
回复
我也没用过vb,你看看这个:

Match 对象
描述
提供了对正则表达式匹配的只读属性的访问。
说明
Match 对象只能通过 RegExp 对象的 Execute 方法来创建,该方法实际上返回了 Match 对象的集合。所有的 Match 对象属性都是只读的。
在执行正则表达式时,可能产生零个或多个 Match 对象。每个 Match 对象提供了被正则表达式搜索找到的字符串的访问、字符串的长度,以及找到匹配的索引位置等。

下面的代码说明了 Match 对象的用法:

Function RegExpTest(patrn, strng)
Dim regEx, Match, Matches ' 建立变量。
Set regEx = New RegExp ' 建立正则表达式。
regEx.Pattern = patrn ' 设置模式。
regEx.IgnoreCase = True ' 设置是否区分大小写。
regEx.Global = True ' 设置全局替换。
Set Matches = regEx.Execute(strng) ' 执行搜索。
For Each Match in Matches ' 遍历 Matches 集合。
RetStr = RetStr & "Match " & I & " found at position "
RetStr = RetStr & Match.FirstIndex & ". Match Value is "'
RetStr = RetStr & Match.Value & "'." & vbCRLF
Next
RegExpTest = RetStr
End Function

MsgBox(RegExpTest("is.", "IS1 is2 IS3 is4"))

dj0628 2007-04-09
  • 打赏
  • 举报
回复
你应该到vb那边去问啊

28,390

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧