除了锚标记之外,删除所有HTML标记

时间:2011-12-02 12:23:26

标签: asp.net vb.net anchor strip-tags

我正在将数据从1个数据库导入到另一个数据库。我被要求删除所有HTML内容,因为它凌乱且无效,只需保留链接

我目前使用以下VB.NET函数从一串内容中删除所有HTML标记:

Public Shared Function StripHTML(ByVal htmlString As String) As String
    Dim pattern As String = "<(.|\n)*?>"
    Return Regex.Replace(htmlString, pattern, String.Empty)
End Function

我正在寻找一种从内容中删除所有内容但a(锚)标记的方法。

例如,如果我有以下HTML内容:

<table>
  <tr>
     <td>
         Lorem <a href="http://google.com">Ipsum</a>
     </td>
   </tr>
</table>

这将简单地成为:

Lorem <a href="http://google.com">Ipsum</a>

我该怎么做?

3 个答案:

答案 0 :(得分:2)

我建议您使用Html Agility Pack

还要检查此问题/答案:HTML Agility Pack strip tags NOT IN whitelist

答案 1 :(得分:0)

你可以试试这个

<((?!a[ ]).|\n)*?>

答案 2 :(得分:0)

除了剥离所有标签而不是剥离锚,您可以使用反向逻辑并仅获取锚点。 为什么不尝试使用以下模式来提取锚点:

(?<anchor><a.*?href=[""'](?<url>.*?)[""'].*?>(?<name>.*?)</a>)

HTH 帕维尔