字符串后的字符串拆分

时间:2012-03-01 05:41:01

标签: vb.net string .net-2.0

嗨,我有一个像这样的字符串

MRP^1^1~MRP|MRP+1^1^1~MRP+1|MRP+2^1^1~MRP+2|MRP+3^1^1~MRP+3|MRP+4^1^1~MRP+4

我想将它拆分并在单行操作中进入这样的数组。

MRP
MRP+1
MRP+2
MRP+3
MRP+4

任何人都可以帮助我

2 个答案:

答案 0 :(得分:2)

这是另一种使用Regex的方法:)

Imports System.Text.RegularExpressions

Public Class Form1

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) _
    Handles Button1.Click

        '~~> Input string
        Dim strSample As String = "MRP^1^1~MRP|MRP+1^1^1~MRP+1|MRP+2^1^1~MRP+2|MRP+3^1^1~MRP+3|MRP+4^1^1~MRP+4"

        Dim pattern As String = "(MRP\+?[0-9]?)\^1\^1\~"

        Dim matches As MatchCollection = Regex.Matches(strSample, pattern)

        For Each match As Match In matches
            MessageBox.Show (Match.Groups(1).Value)
        Next
    End Sub
End Class

修改

还有一种方式(虽然有点长篇大论......)

您可以使用 String.Replace 将“ ^ 1 ^ 1~ ”替换为“ | ”,这样您只有1个分隔符然后使用Split提取唯一值。但是,就像我上面提到的那样,这有点长篇大论。 :)

HTH

西特

答案 1 :(得分:1)

虽然这行代码会为您提供所寻求的结果,但它可能不是最好的方法,因为我不知道数据如何变化,也不知道它是什么定义的,或许可以更深入地了解您正在尝试的内容要完成这个字符串来自哪里可以帮助我们给你一个更好的答案。

Dim resultArray = myCurrentString.Split(New Char() {"~", "|"}).Where(Function(str) Not str.Contains("^")).ToArray