-1

string between 関数が必要です。ただし、関数は配列でなければなりません。

例: p1 と p2 のテキスト。

Mystring = "bla bla bla StartText bla bla bla bal EndText bla bla StartText bla bla EndText "

この機能は次のとおりです。

dim BetweenStrings as Array 

BetweenStrings = _GetStringBetween(Mystring,"StartText","EndText")

BetweenStrings(1) ---> bla bla bla bla

BetweenStrings(2) ---> bla bla

間のすべての StartText と EndText に対して。

4

2 に答える 2

1

文字列の一致について正規表現を調べることをお勧めします。たとえば、入力文字列から、次のようなことができます。

Dim regexString = "StartText(?<found>[^EndText]+)"
Dim matches = Regex.Match(MyString, regexString)
For Each match in matches
  Console.WriteLine(match.Groups("found").Value)
Next
于 2012-09-04T19:31:21.590 に答える
1

Jim Wooley が示したように、RegEx を使用することは優れた選択肢です。ただし、正規表現以外のソリューションを探している場合は、これでうまくいくはずです。

Private Function _GetStringBetween(ByVal text As String, ByVal startTag As String, ByVal endTag As String) As String()
    Dim results As New List(Of String)()
    While text.Length <> 0
        Dim startIndex As Integer = text.IndexOf(startTag)
        If startIndex <> -1 Then
            text = text.Substring(startIndex + startTag.Length)
            Dim endIndex As Integer = text.IndexOf(endTag)
            If endIndex <> -1 Then
                results.Add(text.Substring(0, endIndex))
                text = text.Substring(endIndex + endTag.Length)
            Else
                Exit While
            End If
        Else
            Exit While
        End If
    End While
    Return results.ToArray()
End Function
于 2012-09-04T19:34:56.903 に答える