2013-05-06 88 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 

在老款的權利同樣的事情,簡單的方法你知道