在两个相同的字符vb.net之间获取字符串

时间:2014-07-15 04:51:08

标签: vb.net

ASD~QW~DFGH~LOP~GGGH~123~SXC~QL~

我需要字符串QW,LOP,123,QL,它位于两个〜

之间

2 个答案:

答案 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"