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

使用法

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

    MsgBox(xa)

サイトにはこれらの2つの文字列を含む複数の文字列がありますが、2つの文字列の間の最初の文字列を取得するだけで、説明が難しくて申し訳ありません:/

4

3 に答える 3

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
于 2013-05-06T09:10:24.257 に答える
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

ご存知のように、古いスタイルでは権利は減価償却されます

于 2013-12-31T03:11:37.307 に答える