.NET string.Split(string [])多个匹配逻辑?

时间:2015-06-24 15:49:10

标签: .net string split string-split

有人可以解释拆分方法在这里使用的逻辑吗?

为什么你可以多次匹配类似的模式,只要它结束相同但不是如果它开始相同?

enter image description here

1 个答案:

答案 0 :(得分:1)

迭代要分割的字符串的每个索引(或者在第一个字符串之后的迭代中拆分每个字符串),并在每个索引处尝试按照元素出现的顺序匹配数组的元素在阵列中。

在您的第一个示例字符串"end\n\r\nbegin"中,它会尝试匹配(按此顺序)"e""en""n""end"或{{1} }或"nd""d""end\n""nd\n""d\n"。它在最后一次检查中找到匹配项,拆分字符串,然后重新开始。

"\n"匹配的字符串"endNNRRNNbegin"上,它与{"NN", "NNRR"}的第一个匹配项匹配,生成"NN"。在第二次传递时,它再次匹配"end","RRNNbegin",生成"NN"

如果您在示例的其余部分上运行此算法,您将获得与您显示的输出相同的结果。

有关详情,请参阅documentation比较详情部分。