-1
 <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>

请帮助解决这个问题,

4

2 回答 2

1

Freefaller 已经说过最重要的规则:不要使用 RegEx 来操作 Html。一些伟大的思想家为我们开发了HtmlAgilityPack,它比 RegEx 做得更好,更易读。

我无法使用 VB.net,但代码看起来类似于:

foreach (HtmlNode node in doc.DocumentNode.SelectNodes("//span"))
{
  node.ParentNode.RemoveChild(node);
}

有关 HtmlAgilityPack 文章的更全面的概述,请访问: 如何使用 HTML Agility Pack

亲切的问候

于 2013-09-25T12:11:08.923 回答
0

使用此正则表达式替换

(?<=<span[^<>]+)style="[^"]*"(?=[^<>]+>)|</span[^<>]*>

虽然您应该使用 html 解析器,或者您也可以与 DOM 交互并删除样式..取决于您的要求和您正在创建的内容

于 2013-09-25T11:22:32.137 回答