我试图在Visual Basic中获取2个静态字符串之间的所有文本。 例如:
Hello my name is Jesse Hello ........ Hello my name is John Hello ...... Hello my name is Frank Hello ........
我想在Hello之间搜索我的名字和Hello,所以输出将是:
Jesse
John
Frank
我已经对此做了一些研究,但我只能找到如何获得1个结果,我希望有人可以帮助我。
我目前有
Dim s As String = TextBox1.Text
Dim i As Integer = s.IndexOf("Hello my name is")
Dim result As String = s.Substring(i + 1, s.IndexOf("Hello", i + 1) - i - 1)
但它只会提供1个输出。
感谢。
答案 0 :(得分:1)
正则表达式。 您需要使用正则表达式,即System.Text.RegularExpressions
Imports System.Text.RegularExpressions
Dim matches As MatchCollection = Regex.Matches(TextBox1.Text, "Hello my name is (\w+)")
For Each m As Match In matches
Console.WriteLine(m.Groups(1).Value)
Next
如果你对正则表达式不熟悉,那么我只能给你一个温暖的拥抱,然后说,"对不起。"
答案 1 :(得分:0)
对于给定的input
字符串,您可以执行以下操作:
ReadOnly Separators As String() = { "Hello my name is " }
Dim names As String() = input _
.Split(Separators, StringSplitOptions.RemoveEmptyEntries) _
.Where(Function(s) Not s.StartsWith("Hello")) _
.ToArray()
For Each name As String In names
Console.WriteLine(name)
Next
此:
Where
对此进行过滤,以排除以“Hello”ToArray