【问题标题】:remove html tags regexp except for <p> and </p> [duplicate]删除 <p> 和 </p> 之外的 html 标签正则表达式 [重复]
【发布时间】:2014-07-24 08:39:45
【问题描述】:

我想删除除&lt;p&gt;&lt;/p&gt; 标签之外的所有html 标签

我正在使用 c# 工作

例如:&lt;p&gt;hello&lt;a href=kuku&gt;给你&lt;/a&gt;&lt;/p&gt;

应该返回&lt;p&gt;hello 给你&lt;/p&gt;

附:我正在使用正则表达式函数,但我愿意接受建议

【问题讨论】:

标签: c# html regex


【解决方案1】:

使用这个简单的正则表达式:

<(?!/?p>)[^<>]*>

查看 the Regex Demo 底部的替换。

在 C# 中:

resultString = Regex.Replace(yourString, 
                              "<(?!/?p>)[^<>]*>", "", 
                              RegexOptions.IgnoreCase);

说明

  • &lt; 匹配一个开始标签
  • 否定的前瞻(?!/?p&gt;) 断言后面的不是可选的斜杠和结束标记&gt;
  • [^&lt;&gt;]* 匹配任何不是&lt;&gt; 的字符
  • &gt; 匹配结束标签
  • 我们用空字符串替换

【讨论】: