![](/img/trans.png)
[英]C#: Regular expression to replace all <font> tags in HTML by <span>
[英]Regular Expression to replace HTML tags
我是正则表达式的新手,正在尝试编写一个正则表达式,它将在字符串中找到所有<p>
和</p>
标签,并分别用<span>
和</span>
替换它们。 我想出了这个:
Regex rex = new Regex("<(p|P) />", RegexOptions.IgnorePatternWhitespace);
storeHours = rex.Replace(storeHours, "<span />");
我也尝试只链接 2 个字符串替换,这也不起作用。
storeHours = storeHours.Replace("<p>", "<span>").Replace("</p>", "</span>");
您不应将 Regex 用于 HTML 操作。 您应该使用 HTML 解析器,您可以尝试使用 HTML Agility Pack。 下面是一个例子:
public string ReplacePElement(string htmlContent)
{
HtmlDocument doc = new HtmlDocument();
doc.LoadHtml(htmlContent);
foreach(HtmlNode p in doc.DocumentNode.SelectNodes("p"))
{
string value = tb.InnerText.Length>0 ? tb.InnerText : " ";
HtmlNode lbl = doc.CreateElement("span");
lbl.InnerHtml = value;
tb.ParentNode.ReplaceChild(lbl, tb);
}
return doc.DocumentNode.OuterHtml;
}
你的代码
storeHours = storeHours.Replace("<p>", "<span>").Replace("</p>", "</span>");
工作正常。 我想你的问题可能出在编码上。 你的客户代码是什么?
如果您有一些属性(例如style
),那么以下正则表达式效果更好:
storeHours.replace(/<p\b/gmi, "<span");
(它也取代了打开和关闭标签。)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.