Вот еще один способ сделать это с помощью 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
Сид