在部分限制器/短语之间获取文本

试图找出一种方法来获取字符串中两个可预测元素之间的文本(包括)。


例子:


完整字符串 = [http:Something] One Two Three [http:AnotherOne] Four [http:BlahBlah] sdksaod,cne 9ofew {}@:P{


理想结果:


字符串 1 = [http:Something] One Two Three


字符串 2 = [http:AnotherOne] Four


字符串 3 = [http:BlahBlah] sdksaod,cne 9ofew {}@:P{


目前我可以得到结果,但它非常混乱,以后可能更难更新。有没有更好的方法来做到这一点?


当前代码示例:


String par = "[http//blah.com] One Two Three [http://wow.com] Four Five 

[http://another.com] Six";


String[] paramUrls = par.Split(' ');

List<String> paramPerURL = new List<String>();


String temp = "";

Boolean found = false;

for(int z = 0; z < paramUrls.Length; z++){

    if(paramUrls[z].Contains("[http")){                    

        if(found){

            paramPerURL.Add(temp);

        }

        found = true;

        temp = paramUrls[z] + " ";

    } else{

        temp += paramUrls[z] + " ";

    } 

    if(z == paramUrls.Length -1){

        paramPerURL.Add(temp);

    }

}


MMTTMM
浏览 107回答 3
3回答

收到一只叮咚

如果我理解正确,您的字符串由以[text]序列开头的部分组成。如果是这种情况,并且您确定该[字符永远不会作为数据的一部分出现,您可以执行以下操作:stringParts&nbsp;=&nbsp;Regex.Split(par,&nbsp;@"(?=\[)").Where(s&nbsp;=>&nbsp;s&nbsp;!=&nbsp;String.Empty).ToArray();或者您可以使用 just&nbsp;par.Split('['),但在这种情况下,初始值[将从生成的字符串部分中删除。
打开App,查看更多内容
随时随地看视频慕课网APP