我几乎完成了我的网站的trackback系统,但还有最后一个琐碎的正则表达式,我就是搞不懂。
我想要的是引用页面的摘录,在那里我将最相关的摘录定义为:
页面的HTML源中<h1></h1>、<h2></h2>或<h3></h3>后面的第一段(由<p></p>标记标记)。
例如,我可以成功获取HTML的<title></title>标记,如下所示:
Regex reTITLE = new Regex( @"(?<=<title.*>)([\s\S]*)(?=</title>)",
RegexOptions.IgnoreCase );
Match match = reTITLE.Match( strHTMLSource );
if (match.Success)
{
strReferringPageTitle = match.Value.Trim( );
}我的问题--我可以使用什么正则表达式来获取我的帖子的第一部分中描述的字符串?
附言:我爱StackOverflow和这个社区--干得好,乔尔公司!
发布于 2009-05-06 22:38:09
Match m = Regex.Match(strHTMLSource, "^.*?</h[123]>.*?<p>(.*?)</p>",
RegexOptions.Compiled | RegexOptions.IgnoreCase);
string para = m.Success ? m.Groups[1].Value.Trim() : string.Empty;发布于 2009-05-06 23:04:46
就我个人而言,我会使用XPath查询来实现您正在尝试实现的目标,这比摆弄正则表达式要容易得多。
发布于 2009-05-06 22:47:55
此正则表达式将查找h1、h2或h3之后的所有第一个段落。如果你只想要页面上的第一段,只需要保持第一段匹配。
(?<=</h[1-3]>\s*?<p>)([\s\S]*?)(?=</p>)您可能需要调整<p>标记的匹配项以考虑属性。
https://stackoverflow.com/questions/832116
复制相似问题