2013-05-06 89 views
0
Public Function GetStringBetween(ByVal InputText As String, _ 
    ByVal starttext As String, _ 
    ByVal endtext As String) 

     Dim lnTextStart As Long 
     Dim lnTextEnd As Long 

     lnTextStart = InStr(StartPosition, InputText, starttext, vbTextCompare) + Len(starttext) 
     lnTextEnd = InStr(lnTextStart, InputText, endtext, vbTextCompare) 
     If lnTextStart >= (StartPosition + Len(starttext)) And lnTextEnd > lnTextStart Then 
      GetStringBetween = Mid$(InputText, lnTextStart, lnTextEnd - lnTextStart) 
     Else 
      GetStringBetween = "ERROR" 
     End If 
    End Function 
    Dim xa As String 
     Dim x As String = WebBrowser1.DocumentText 

使用之间的所有字符串得到2串

xa = GetStringBetween(x, TextBox1.Text, TextBox2.Text) 

    MsgBox(xa) 

我已经尝试了很多很多不同势的方法来尝试获得2个为每个等网站有更多然后1个字符串与其他字符串之间的所有字符串2字符串,但我只是得到2串之间的第一个字符串帮助对不起,它很难解释:/

+2

什么是“两个字符串之间的所有字符串”贬值?你想要string1和string2之间的子串吗?多个字符串假定您想要用空格分隔(例如)。你能展示一个例子和期望的结果吗? – 2013-05-06 09:00:23

+2

这段代码看起来像VB6 ......也许你会有兴趣了解Vb.NET可以提供的优势 – SysDragon 2013-05-06 09:22:49

+0

看起来你正在尝试做一个学校作业?如果不是,你不断重复你需要得到两个字符串之间的所有字符串,那究竟是什么意思?给我们两个样本字符串和你期望的结果是什么,也许我们可以给你有用的帮助。 – 2013-05-06 12:44:16

回答

0

您可以使用正则表达式。例如:(word1)*(word2)

2

编写该代码的最简洁的方法可能是通过RegEx,但它可能是矫枉过正。
这是做使用string.IndexOf

Public Function GetStringBetween(ByVal InputText As String, _ 
           ByVal starttext As String, _ 
           ByVal endtext As String) 

    Dim startPos As Integer 
    Dim endPos As Integer 
    Dim lenStart As Integer 
    startPos = InputText.IndexOf(startText, StringComparison.CurrentCultureIgnoreCase) 
    if startPos >= 0 Then 
     lenStart = startPos + starttext.Length 
     endPos = InputText.IndexOf(endtext, lenstart, StringComparison.CurrentCultureIgnoreCase) 
     If endPos >= 0 Then 
      return InputText.Substring(lenStart, endPos - lenStart) 
     End If 
    End If 
    return "ERROR" 
End Function 
+0

不,我需要所有的字符串我的代码我使用的作品,但它只获得其他2个字符串之间的第一个字符串,但在文本中的其他人,但它只给了我第一个。 你知道像每个字符串 我需要在两个字符串之间的文本中的所有字符串 – 2013-05-06 10:24:59

0
Public Function GetBetween(IStringStr As String, IBefore As String, IPast As String) 
    On Error Resume Next 
    Dim iString As String 
    iString = IStringStr 
    iString = Right(iString, Len(iString) - InStr(iString, IBefore) - Len(IBefore) + 1) 
    iString = Mid(iString, 1, InStr(iString, IPast) - 1) 
    GetBetween = iString 
End Function 

在老款的权利同样的事情,简单的方法你知道