正则表达式在两个注释之间获取html
本文关键字:注释 之间 获取 html 两个 正则表达式 | 更新日期: 2023-09-27 18:29:08
我正在尝试获取到注释之间的HTML片段。
稍后我需要在开始/结束之间解析HTML。
我实际上是在阅读一个html文件,但出于测试目的,我模拟了以下内容:
string emailFeedTxtStart = "<!--FEED FOR RECEIPT GOES HERE-->";
string emailFeedTxtEnd = "<!--FEED FOR RECEIPT ENDS HERE-->";
string html =
emailFeedTxtStart + Environment.NewLine +
@"<td align=""center"">" + Environment.NewLine +
@"<table style=""table-layout:fixed;width:380px"" border=""0"" cellspacing=""0"" cellpadding=""0"">" + Environment.NewLine +
"<tbody>" + Environment.NewLine +
"<tr>" + Environment.NewLine +
"<td>" + Environment.NewLine +
"</td>" + Environment.NewLine +
"</tr>" + Environment.NewLine +
"</tbody>" + Environment.NewLine +
"</table>" + Environment.NewLine +
"</td>" + Environment.NewLine +
emailFeedTxtEnd;
string patternstart = Regex.Escape(emailFeedTxtStart);
string patternend = Regex.Escape(emailFeedTxtEnd);
string regexexpr = patternstart + @"(.*?)" + patternend;
//string regexexpr = @"(?<=" + patternstart + ")(.*?)(?=" + patternend + ")";
MatchCollection matches = Regex.Matches(@html, @regexexpr);
返回的匹配项为0。
(请注意,之间有更多的HTML)。
如有任何帮助,我们将不胜感激。
之后您将用什么来解析HTML?因为可能有一种方法可以省去事先实际操作HTML字符串的麻烦。无论如何,这里有一个解决方案:
string afterFirst = html.Substring(Regex.Match(html, emailFeedTxtStart).Index + emailFeedTxtStart.Length);
string between = afterFirst.Substring(0, Regex.Match(afterFirst, emailFeedTxtEnd).Index);