我的文本包含许多标签,例如:
<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文档中,所有内容都将包含在某种类型的标签中,因此您的结果应该永远是什么。
警告:这绝不是一种全面或完整的解决方案,但它是从您的真实输入数据的样子开始的好基础。