如何用字符串分隔符分割字符串?意外的String.Split(“ <br/>” .ToCharArray())行为

时间:2018-09-03 22:31:57

标签: c# .net

我有这样的输入字符串(从.NET调试器粘贴):

"g: 17.00 2D nap<br>\ng: 14.30 2D dub ; 17.15 3D nap<br>\ng: 14.30 3D dub ; 17.15 2D nap<br>\ng: 17.00 2D dub<br>\ng: 17.00 3D dub"

我正在尝试按"<br>"进行拆分:

var items = mystring.Split("<br>".ToCharArray()); // 7 elements

我得到7个列表元素,而不是5个。

看起来Split函数也被“;”分割分隔符。

目前,我发现了这样的解决方法:

var items = mystring.Replace("<br>", "|").Split("|".ToCharArray()); // 5 elements

但是怎么回事?

2 个答案:

答案 0 :(得分:9)

您的问题是使用ToCharArray()

使用String.Split()的{​​{1}}重载将使用每个单独的字符作为定界符:因此,通过传入char[]可以得到组成字符的"<br>".ToCharArray()中,您要用<br><br中的任何一个来分割字符串,这会是您所不想要的

现在,对于没有选项的单个字符串分割,没有重载,但是很容易绕开它:

>

答案 1 :(得分:1)

尝试使用RegEx.Split

var items = RegEx.Split(mystring, "<br>"); 

这将在<br>的完全匹配项上拆分,而不是像其他答案中所述的那样在字符上拆分。