-1

我需要一个字符串之间的函数。但是函数应该是数组。

例如:p1 和 p2 一些文本。

Mystring =“bla bla bla StartText 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 回答