我有一些带有 HTML 标记的简单文本 (只有 <b>
标签),例如:
Lorem Ipsum 是印刷和排版行业的<b>标准虚拟文字</b>
我想将这段文本拆分为以下数组:
[0] - Lorem Ipsum is
[1] - <b>simply dummy</b>
[2] - text of the printing and
[3] - <b>typesetting industry</b>
HTML标签内的文本必须与其他文本分开。有没有简单的解决方案?
谢谢
我有一些带有 HTML 标记的简单文本 (只有 <b>
标签),例如:
Lorem Ipsum 是印刷和排版行业的<b>标准虚拟文字</b>
我想将这段文本拆分为以下数组:
[0] - Lorem Ipsum is
[1] - <b>simply dummy</b>
[2] - text of the printing and
[3] - <b>typesetting industry</b>
HTML标签内的文本必须与其他文本分开。有没有简单的解决方案?
谢谢
您可以使用以下代码来实现此操作
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();
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();
}
Split()
函数或正则表达式实现某些功能吗? - Mivaweb[0] - Lorem Ipsum is
直到找到 <b>。当您找到 <b> 时,您搜索下一个 </b> 并将其放置在数组[1] - <b> simply dummy </b>
中,以此类推。就像最小的解析算法一样。如果您没有嵌套的 <b>,则这将起作用。 - Razvan Dumitru