ASD~QW~DFGH~LOP~GGGH~123~SXC~QL~
我需要字符串QW,LOP,123,QL,它位于两个〜
之间答案 0 :(得分:1)
对于这样的事情,你可能想要正则表达式。
.*?~([^~]+?)(?=~)
虽然给出了您的示例,但String.Split可能会被按摩到工作中。
这是使用正则表达式的ideone sample。
这是使用String.Split的分割函数的一个版本....
Public Function Split(input As String) As List(Of String)
Dim results as List(Of String)
Dim pos = input.IndexOf("~")
If pos < 0 Then
Return New List(Of String) ' return empty list if no match
End If
input = input.Remove(0, pos)
input = input.Substring(0, input.LastIndexOf("~"))
results = input.Split("~").Where(Function(x) Not String.IsNullOrEmpty(x)).ToList()
Return results
End Function
答案 1 :(得分:1)
在分割~
之后,您似乎想要每一个第二项
这应该这样做:
Dim str = "ASD~QW~DFGH~LOP~GGGH~123~SXC~QL~"
Dim res = str.Split("~"C) _
.Select(Function(x, i) New with { x, i }) _
.Where(Function(s) s.i Mod 2 = 1) _
.Select(Function(s) s.x)
结果将是字符串的集合:"QW","LOP","123","QL"