通过子字符串拆分字符串而不是char

时间:2014-01-15 16:27:08

标签: .net regex vb.net string split

我在询问之前搜索了网站,但我找到的解决方案都没有对我的问题有所帮助。

首先我有一个类似的字符串:

Dim someString As String = "<object>sometext</object><object>sometext</object><object>sometext</object>"

我试图将它拆分成一个字符串数组,如下所示:

stringArray 0 --> "<object>sometext</object>"
stringArray 1 --> "<object>sometext</object>"
stringArray 2 --> "<object>sometext</object>"

我尝试拆分文本的方法会从结果中删除分隔符,这不是我想要的,因为它会使代码无效。

2 个答案:

答案 0 :(得分:3)

这是一个伪代码,因为我不确定VB的确切语法,但你可以尝试在每个结尾处强制一个字符,如下所示:

Dim someString As String = "<object>sometext</object><object>sometext</object><object>sometext</object>"
var stringToSpilt = someString.Replace("</object>","</object>~")
var splitObjects = stringToSpilt.Split("~")

如果“对象”可以是任何文本,那么RegEx替换会执行此操作,但正如上面的人所评论的那样,如果它是XML拆分它将比这更多涉及。

答案 1 :(得分:0)

使用IndexOf并使用List(Of String),没有隐藏的字符串碎片

Dim someString As String = "<object>sometext</object><object>sometext</object><object>sometext</object>"
Dim result = new List(Of String)()
Dim pos = 0
Dim init = 0
Dim len = "</object>".Length
do 
   pos = someString.IndexOf("</object>", init)
   if pos <> -1 Then
      result.Add(someString.Substring(init, pos +  len - init))
      init = pos + len + 1
   End If
Loop while pos <> -1