Arrays vb.net函数数组之间的字符串

Arrays vb.net函数数组之间的字符串,arrays,vb.net,Arrays,Vb.net,我需要一个stringbetween函数。但函数应该是数组 例: p1和p2是一些文本 Mystring=“bla-bla-blaStartTextbla-bla-bla-balEndTextbla-blaStartTextbla-blaEndText” 这个功能是 dim BetweenStrings as Array BetweenStrings = _GetStringBetween(Mystring,"StartText","EndText") BetweenStrings(1)

我需要一个stringbetween函数。但函数应该是数组

例: p1和p2是一些文本

Mystring=“bla-bla-blaStartTextbla-bla-bla-balEndTextbla-blaStartTextbla-blaEndText

这个功能是

dim BetweenStrings as Array 

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

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

BetweenStrings(2) ---> bla bla

对于介于之间的所有StartText和EndText,您可能需要查找字符串匹配的正则表达式。例如,从输入字符串中,可以执行以下操作:

Dim regexString = "StartText(?<found>[^EndText]+)"
Dim matches = Regex.Match(MyString, regexString)
For Each match in matches
  Console.WriteLine(match.Groups("found").Value)
Next
Dim regexString=“StartText(?[^EndText]+)”
Dim matches=Regex.Match(MyString,regexString)
比赛中的每一场比赛
Console.WriteLine(match.Groups(“found”).Value)
下一个

吉姆·伍利(Jim Wooley)证明,使用正则表达式将是一个很好的选择。但是,如果您正在寻找非正则表达式解决方案,这应该可以:

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
Private Function\u GetStringBetween(ByVal text作为字符串,ByVal startTag作为字符串,ByVal endTag作为字符串)作为字符串()
将结果变暗为新列表(字符串)()
而文本长度为0
Dim startIndex As Integer=text.IndexOf(startTag)
如果startIndex为-1,则
text=text.Substring(startIndex+startTag.Length)
Dim endIndex作为整数=text.IndexOf(endTag)
如果endIndex为-1,则
results.Add(text.Substring(0,endIndex))
text=text.Substring(endIndex+endTag.Length)
其他的
退出时
如果结束
其他的
退出时
如果结束
结束时
返回结果。ToArray()
端函数

Hi SteveDog。多谢各位。