[英]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.