C# 正则表达式匹配内部html标记

C# 正则表达式匹配内部html标记,c#,regex,C#,Regex,我的html如下所示 <body><table><tr><td> <h4><span><strong><span>This Text</span></strong></span></h4> </td> <td> <h4><span><strong>That Text<br><

我的html如下所示

 <body><table><tr><td> <h4><span><strong><span>This Text</span></strong></span></h4> </td> <td> <h4><span><strong>That Text<br></strong></span></h4> </td> <td> <h4><span><strong><span>Some Text</span></strong></span></h4> </td> <td><span><strong>0 505 253 56 13</strong></span></td></tr><table></body>
此文本该文本
某些文本0 505 253 56 13
下面的正则表达式清除所有不带a | p | img的标记

 _QsHtml = Regex.Replace(_QsHtml, @"<\/?(?!a)(?!p)(?!img)\w*\b[^>]*>","", RegexOptions.Multiline);
\u QsHtml=Regex.Replace(\u QsHtml,@“]*>”,“”,RegexOptions.Multiline);
我只想将ragex应用于表行(td)。我尝试过使用正则表达式,但不匹配

<\/?td(?!a)(?!p)(?!img)\w*\b[^>]*td>
]*td>
匹配除

]*>


匹配除

之外的所有代码。好的,我已经解决了合并Html敏捷性完整工作代码的问题,如下所示

string _QsHtml =  @"<body><table><tr><td> <h4><span><strong><span>This Text</span></strong></span></h4> </td> <td> <h4><span><strong>That Text<br></strong></span></h4> </td> <td> <h4><span><strong><span>Some Text</span></strong></span></h4> </td> <td><span><strong>0 505 253 56 13</strong></span></td></tr><table></body>";

var _HtmlDocument = new HtmlAgilityPack.HtmlDocument();
_HtmlDocument.OptionFixNestedTags = true;
_HtmlDocument.OptionAutoCloseOnEnd = true;
_HtmlDocument.OptionWriteEmptyNodes = true;
_HtmlDocument.LoadHtml(_QsHtml);

 var FindTableRows = _HtmlDocument.DocumentNode.SelectNodes("//td");

 if (FindTableRows != null)
 {
     foreach (var TableRow in FindTableRows.ToList())
     {
         string _InnerHtml = TableRow.InnerHtml;

        _InnerHtml = Regex.Replace(_InnerHtml,
                               @"<\/?(?!a)(?!br)(?!img)\w*\b[^>]*>",
                               "", RegexOptions.Multiline);
        TableRow.InnerHtml = _InnerHtml;

     }
 }
string\u QsHtml=@“此文本该文本
某些文本<0 505 253 56 13”; var_HtmlDocument=新的HtmlAgilityPack.HtmlDocument(); _HtmlDocument.OptionFixNestedTags=true; _HtmlDocument.OptionAutoCloseOnEnd=true; _HtmlDocument.OptionWriteEmptyNodes=true; _HtmlDocument.LoadHtml(QsHtml); var FindTableRows=\u HtmlDocument.DocumentNode.SelectNodes(“//td”); 如果(FindTableRows!=null) { foreach(FindTableRows.ToList()中的var TableRow) { 字符串_InnerHtml=TableRow.InnerHtml; _InnerHtml=Regex.Replace(_InnerHtml, @"]*>", “”,RegexOptions.Multiline); TableRow.InnerHtml=\u InnerHtml; } }
可能重复的正则表达式可能不是解析html的好方法:;使用特定于html的解析器可能是一种更可靠的方法。您是要删除除td以外的所有标记,还是仅删除td标记?@smn.tino我想用空字符串替换不必要的标记谢谢您的支持,但所有正则表达式都不匹配