【问题标题】:Strip all HTML tags, except anchor tags去除所有 HTML 标签,除了锚标签
【发布时间】:2011-12-02 12:23:25
【问题描述】:

我正在将数据从 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>

我该怎么做?

【问题讨论】:

  • 你能给我们更多关于你的任务的信息吗?你想达到什么目的?
  • 我正在将数据从 1 个数据库导入到另一个数据库。我被要求删除所有 HTML 内容,因为它混乱且无效,只保留链接

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


【解决方案1】:

我建议你使用Html Agility Pack

也检查这个问题/答案:HTML Agility Pack strip tags NOT IN whitelist

【讨论】:

【解决方案2】:

你可以试试这个

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

【讨论】:

  • 这仍然会删除&lt;/a&gt;
【解决方案3】:

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

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

HTH 帕维尔

【讨论】:

  • 我需要的内容也不是锚点,而不仅仅是锚点列表
猜你喜欢
  • 1970-01-01
  • 2011-09-08
  • 1970-01-01
  • 1970-01-01
  • 2011-05-15
  • 2010-09-07
  • 1970-01-01
  • 2011-03-11
  • 2017-03-06
相关资源
最近更新 更多