C#REGEX删除标签之间的文本



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

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

我不确定为什么如果没有评论就会有这个问题,这不是很好,但很明显他想做什么。

您去这里:

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

请记住,在有效的HTML文档中,所有内容都将包含在某种类型的标签中,因此您的结果应该永远是什么。

警告:这绝不是一种全面或完整的解决方案,但它是从您的真实输入数据的样子开始的好基础。

相关内容

  • 没有找到相关文章

最新更新