首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

在线求解-VB怎么获取两个标签之间的数据

2013-01-08 
在线求解-VB如何获取两个标签之间的数据最近因为这一个事快把我给麻烦死了,不知道是不是因为我的是精简版

在线求解-VB如何获取两个标签之间的数据
最近因为这一个事快把我给麻烦死了,不知道是不是因为我的是精简版的原因,有好多的正则表达式都不能使用,比如要获取一个网页的标题,我可以这样写<title>.*</title>但是获取出来的会包括两个标签。
我不想要那两个标签。然后我通过百度问答知道可以这样写(?<=<title>).*(?=</title>)
这一个表达式在测试器里面是可以使用的。但是到VB里面就不能使用了,
在下面我会贴上我的代码。都是复制过来的,我也只是一个菜鸟,不过我就是不知道为什么在VB里面就是不能使用,
我看大家说用VB.net但是我查了一下,VB.net和VB是大不相同的。要是再重新学VB.net太难了。没有时间。



在线等求解
[解决办法]
这跟精简版扯不上什么关系。首先你要认识到不到种的正则表达式组件的正则语法一般都不是完全相同的,你搜索时也要看清别人说的是不是你的vbscript.dll中的那个RegExp组件。我想你要的是这个效果吧

'--------------------------------------------------- 


' 过程名    : TestRegExp2
' 时间      : 2012-12-1 15:06
' 作者      : 杨过.网狐.cn(csdn bcrun)
' 功能      :
' 说明      :
' 备注      : CSDN之VB一群:283362041
'---------------------------------------------------
'
Function TestRegExp2(myPattern As String, myString As String)
   Dim objRegExp As RegExp                      '定义对象
   Dim objMatch As Match
   Dim colMatches   As MatchCollection          '对象包含有关匹配字符串的信息
   Dim RetStr As String
   Dim hanzi As String
   Set objRegExp = New RegExp
   objRegExp.Pattern = myPattern                '传入参数,用来定义正则表达式
   objRegExp.IgnoreCase = True
   objRegExp.Global = True
   If objRegExp.Test(myString) Then    '正则表达式与字符串成功匹配
    Set colMatches = objRegExp.Execute(myString)
    For Each objMatch In colMatches
        hanzi = objMatch.SubMatches(0)
    
      Text2.Text = Text2.Text & hanzi & vbCrLf
    Next
   Else
    RetStr = "String Matching Failed"
   End If
   TestRegExp2 = RetStr
End Function
Private Sub Command1_Click()
    On Error Resume Next
    If Text3.Text = "" Then
        MsgBox "请填写正则表达式", vbAbortRetryIgnore
    Else
    
        Dim a
        Text3.Text = "\<title\>(.*)\</title\>"
        a = (TestRegExp2(Text3.Text, Web1.Document.documentElement.innerHTML))
    End If
  
    
End Sub


[解决办法]
Option Explicit
                                                                 

'---------------------------------------------------
' 过程名    : TestRegExp2
' 时间      : 2012-12-1 15:06
' 作者      : 杨过.网狐.cn(csdn bcrun)
' 功能      :
' 说明      :
' 备注      : CSDN之VB一群:283362041


'---------------------------------------------------
'引用       :Microsoft VBScript Regular Expressions 5.5
Private Sub Command1_Click()
    On Error Resume Next
    Text1.Text = TestRegExp2(Text1.Text)
End Sub
                                                                         
Function TestRegExp2$(myString As String)
    Dim objRegExp As RegExp                                                     '定义对象
    Dim objMatch As Match
    Dim colMatches   As MatchCollection                                         '对象包含有关匹配字符串的信息
    Dim RetStr As String
    Dim hanzi As String
    Set objRegExp = New RegExp
    objRegExp.Pattern = "<title>(.*)</title>"                                   '传入参数,用来定义正则表达式
    objRegExp.IgnoreCase = True
    objRegExp.Global = True
    If objRegExp.Test(myString) Then                                            '正则表达式与字符串成功匹配
        Set colMatches = objRegExp.Execute(myString)
        For Each objMatch In colMatches
            RetStr = RetStr & objMatch.SubMatches(0) & vbCrLf
        Next
    Else
        RetStr = "String Matching Failed"
    End If
    TestRegExp2 = RetStr
End Function


在版主bcrun代码的基础上改了下,亲测通过!!

热点排行