如何将带有HTML标记的文本拆分为数组

时间:2015-05-26 10:07:43

标签: c# windows-phone-8.1 windows-8.1 win-universal-app

我的HTML文本非常简单(只有<b>标签),例如

Lorem Ipsum is <b>simply dummy</b> text of the printing and <b>typesetting industry</b>

我想将文本拆分为数组:

[0] - Lorem Ipsum is 
[1] - <b>simply dummy</b>
[2] - text of the printing and
[3] - <b>typesetting industry</b>

HTML标记内的文本必须与其他文本分开。它有什么简单的解决方案吗?

谢谢

2 个答案:

答案 0 :(得分:2)

您可以使用以下代码

来实现此目的
string value = @"Lorem Ipsum is <b>simply dummy</b> text of the printing and <b>typesetting industry</b>";
var parts = Regex.Split(value, @"(<b>[\s\S]+?<\/b>)").Where(l => l != string.Empty).ToArray();

答案 1 :(得分:0)

我刚刚写了这个,测试了它,它的工作原理。这有点难看,但它有效。哈哈

    public string[] getHtmlSplitted(String text)
    {
        var list = new List<string>();
        var pattern = "(<b>|</b>)";
        var isInTag = false;            
        var inTagValue = String.Empty;

        foreach (var subStr in Regex.Split(text, pattern))
        {
            if (subStr.Equals("<b>"))
            {
                isInTag = true;
                continue;
            }
            else if (subStr.Equals("</b>"))
            {
                isInTag = false;
                list.Add(String.Format("<b>{0}</b>", inTagValue));
                continue;
            }

            if (isInTag)
            {
                inTagValue = subStr;
                continue;
            }

            list.Add(subStr);

        }
        return list.ToArray();
    }
相关问题