【问题标题】:c# regex remove text between tagsc# regex 删除标签之间的文本
【发布时间】:2018-05-22 22:30:33
【问题描述】:

我的文本包含许多标签,例如:

<b class="bold"> some bold text </b> main text
<li>list text</li>
<script> script text </script>

我需要删除标签和标签之间的所有文本 在这个例子中,我应该得到“正文”,因为它是唯一没有标签的文本。

我试过了

   Regex.Replace(input, "<.*?>", String.Empty);

但它会删除所有标签,而不是它们之间的文本

我试过了

var regEx = new Regex(@"<(.+).*>.*<\/\1>");
var result = regEx.Replace(input, string.Empty);

<b class="bold"> bold </b>
main text
<ul>
<li> list </li>
<li> list2 <li>
</ul>

我得到了

main text
<ul>


</ul>

【问题讨论】:

标签: c# html regex html-parsing


【解决方案1】:

我不知道为什么这个问题在没有 cmets 的情况下会被否定,写得不是很好,但很清楚他想做什么。

给你:

var regEx = new Regex(@"<(.+).*>.*<\/\1>");
var result = regEx.Replace(input, string.Empty);

请记住,在有效的 HTML 文档中,所有内容都将包含在某种标记中,因此您的结果应该始终为空。

警告:这绝不是一个全面或完整的解决方案,但它是一个很好的起点,具体取决于您的真实输入数据的样子。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多