嗨,我有一个像这样的字符串
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
任何人都可以帮助我
答案 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