<br style="color: #252525">testing 1</br>
<span style="color: font-family: Verdana">testing 2</span>
Dim RegExStr As String = "</?span.*?>"
它应该删除没有文本的完整跨度,但我只想删除样式。
<br>testing</br>
<span>testing 2</span>
请帮助解决这个问题,
<br style="color: #252525">testing 1</br>
<span style="color: font-family: Verdana">testing 2</span>
Dim RegExStr As String = "</?span.*?>"
它应该删除没有文本的完整跨度,但我只想删除样式。
<br>testing</br>
<span>testing 2</span>
请帮助解决这个问题,
Freefaller 已经说过最重要的规则:不要使用 RegEx 来操作 Html。一些伟大的思想家为我们开发了HtmlAgilityPack,它比 RegEx 做得更好,更易读。
我无法使用 VB.net,但代码看起来类似于:
foreach (HtmlNode node in doc.DocumentNode.SelectNodes("//span"))
{
node.ParentNode.RemoveChild(node);
}
有关 HtmlAgilityPack 文章的更全面的概述,请访问: 如何使用 HTML Agility Pack
亲切的问候
使用此正则表达式替换
(?<=<span[^<>]+)style="[^"]*"(?=[^<>]+>)|</span[^<>]*>
虽然您应该使用 html 解析器,或者您也可以与 DOM 交互并删除样式..取决于您的要求和您正在创建的内容