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

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (214)

我有这样的输入字符串(从.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

但是发生了什么?

提问于
用户回答回答于

你的问题在于使用ToCharArray()

String.Split()接受一个过载char[],你使用的,将使用每一个人作为分隔符:因此,通过传递"<br>".ToCharArray(),这给的组成的字符<br>,你任何的分割你的字符串<br或者>,你”我同意不是你想要的。

现在,没有选项拆分单个字符串的重载,但是很容易绕过这个:

var items = mystring.Split(new[] { "<br>" }, StringSplitOptions.None);
用户回答回答于

尝试使用 RegEx.Split

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

如将<br>在其他答案中所述,这将分别对角色的完全匹配和不分割。

扫码关注云+社区

领取腾讯云代金券