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