簡體   English   中英

在空白處分割字符串,但在HTML標記內排除

[英]Split string on whitespace but exclude inside HTML tag

我有這個解碼的html字符串<div style=\\"text-align:right; \\">test1 <strong>test2 </strong>test3 test4 test5</div>

我需要將它們拆分為空格,但不應拆分html標記中的空格,因此我將在5中進行以下拆分。我不是正則表達式人,所以我需要幫助。

<div style=\"text-align:right;\">test1

<strong>test2

</strong>test3

test4

test5</div>

編輯:我加入了</strong>並添加了另一行以提出另一點。

您可以基於' <''> '進行拆分:

string value = <div style=\"text - align:right; \">test1 <strong>test2 </strong>test3</div>;
string[] listHtml = Regex.Split(value, "( <)|(> )");

原來有點丑陋,但可行,可能比這更好的方法(可以只使用htmlagility pack):

        List<String> finalList = new List<string>();
        bool insideHtml = false;
        StringBuilder sb = new StringBuilder();
        string[] test = "<div style=\"text - align:right; \">test1 <strong>test2 </div>".Split(' ');

        foreach (string t in test)
        {
            if (t.Contains("<"))
            {
                sb.Append(" " + t);
                insideHtml = true;
                if (t.Contains(">"))
                {
                    finalList.Add(sb.ToString());
                    sb.Clear();
                    insideHtml = false;
                }
            }
            else if (t.Contains(">"))
            {
                sb.Append(" " + t);
                finalList.Add(sb.ToString());
                sb.Clear();
                insideHtml = false;
            }
            else
            {
                if (insideHtml)
                {
                    sb.Append(" " + t);
                }
                else
                {
                    finalList.Add(t);
                }
            }
        }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM