我有这个字符串:
S40102S40078S40079S40080S40053S40052S40051S40050
但我的代码是
Dim MyArray() As String = MyString.Split("S")
删除了S但是我想保留它,我已经尝试了RegEx但是我无法让它工作,任何帮助都非常感激。
感谢
答案 0 :(得分:0)
您可以使用正向前瞻并在“S”之前拆分零长度匹配:(?=S)
我希望这适用于VB。
感谢@Oded的评论。为了避免在第一个S上分裂,您可以执行以下操作:(?=[^\a]S)
答案 1 :(得分:0)
尝试在S
之前的数字之间添加分隔符,然后在该分隔符上拆分。例如
Dim MyArray() As String = Regex.Replace(MyString, "(\d)S", "$1-S").Split("-")
注意:VB.NET不是我的第一语言,所以请检查语法是否正确
答案 2 :(得分:0)
我认为正则表达式会对此有所帮助。像这样:
Dim input As String = "S40102S40078S40079S40080S40053S40052S40051S40050"
Dim regex As Regex = New Regex("([^S])*[S]")
Dim ms As MatchCollection = regex.Matches(input)
Dim MyArray() As String
Dim ctr As Integer = 0
'loop through them all
foreach(m As Match In ms)
{
'assign to array
MyArray(ctr) = m.Value
'increase counter
ctr += 1
}
这是未经测试的,并且是来自C#的端口,所以语法可能有点偏,但它非常接近。