我的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>
下面的正则表达式清除没有a|p|img的所有标记
_QsHtml = Regex.Replace(_QsHtml, @"<\/?(?!a)(?!p)(?!img)\w*\b[^>]*>","", RegexOptions.Multiline);
我只想将ragex应用于表行(td)。我尝试过使用正则表达式,但是没有匹配到。
<\/?td(?!a)(?!p)(?!img)\w*\b[^>]*td>
发布于 2018-07-28 07:37:00
好的,我已经解决了合并Html Agility完整工作代码的问题,如下所示
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;
}
}
发布于 2018-07-28 07:14:55
匹配除<td>
之外的所有内容
<\/?(?!td)\w*\b[^>]*>
匹配除<td> <a> <p> <img>
之外的所有内容
<\/?(?!td)(?!a)(?!p)(?!img)\w*\b[^>]*>
仅匹配<td>
<\/?(td)\w*\b[^>]*>
使用此网站帮助您解决问题
https://stackoverflow.com/questions/51566427
复制相似问题