我有这个字符串:
S40102S40078S40079S40080S40053S40052S40051S40050
但我的代码
Dim MyArray() As String = MyString.Split("S")
删除了 S 但我想保留它,我试过 RegEx 但我无法让它工作,非常感谢任何帮助。
谢谢
您可以在“S”之前使用正向预测并在零长度匹配上拆分:(?=S)
我希望这适用于VB。
感谢@Oded 的评论。为避免在第一个 S 上拆分,您可以执行以下操作:(?=[^\a]S)
尝试在数字之间添加分隔符,S
然后在该分隔符上拆分。例如
Dim MyArray() As String = Regex.Replace(MyString, "(\d)S", "$1-S").Split("-")
注意:VB.NET 不是我的第一语言,所以请检查语法是否正确
我认为正则表达式可以解决这个问题。像这样的东西:
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# 的一个端口,因此语法可能有点偏离,但非常接近。