使用某个字符串作为拆分器将字符串拆分为数组,并确保该数组包含拆分器文本

时间:2015-01-01 23:11:43

标签: c# arrays string split

我在C#[WebMethod]中有一些文本:

string myText = "<item>One</item><item>Two</item><item>Three</item>";

我希望将它们分成一个数组(myArray),每个索引上都有以下字符串:

myArray[0] = <item>One</item>
myArray[1] = <item>Two</item>
myArray[2] = <item>Three</item>

这就是我想要实现的目标:

string[] myArray = Regex.Split(myText, "</item><item>");

问题在于,我得到了这个不良结果:

myArray[0] = <item>One
myArray[1] = Two
myArray[2] = Three</item>

这显然是排除了我用来分割myText的标准,从结果数组元素中删除。

我也尝试过:

string[] myArray = Regex.Split(myText, "$1" + "</item><item>" + "$2");

这个甚至没有拆分文本。 对于处理此问题的任何不同方法,我愿意接受建议。

评论中每条建议的其他信息

我将把这些'items'存储为BaseX DB中的节点。我对BaseX的问题是'插入节点......'XQUERY for BaseX只适用于插入一个节点/项目(据我所知)。所以我的计划是将所有项目存储在一个数组中并循环遍历每个项目以分别为每个节点/项目运行BaseX XQUERY。我希望我很清楚:P

1 个答案:

答案 0 :(得分:-1)

这可以给你你想要的东西:

string[] myArray = Regex.Matches(myText, "<item>.*?</item>").Cast<Match>().Select(m => m.Value).ToArray();