日期:2014-05-17  浏览次数:21224 次

正则表达式怎么去获取网页meta内容 分支条件 及在线等。。。。。
我自己写了个正则表达式获取meta标签name=keywords和name=description中content的内容
但是问题是获得内容总是2次description中的内容而没有keywords中的内容
且没有提示错误

 string ss = @"<meta(\w|\W)*\=[\x27\x22]?(keywords|description)[\x27\x22]?[\s]+content\=[\x27\x22](?<1>(\w|\W)*?)(?=[\x27\x22])";
   
  Regex reg = new Regex(ss, RegexOptions.IgnoreCase|RegexOptions.Singleline|RegexOptions.Compiled);
Match m = reg.Match(str);//str为获取的网页源码

  for (int i = 0; i < 2;i++ )
  {
   
   
  if(m.Success)

  u_meta = m.Groups["1"].Value.Trim();
  // Console.Write(i+u_meta);
  m.NextMatch();
   



  }
   
  return u_meta;//返回源码中meta中的内容
我将正则改成下面的
 StringBuilder sb = new StringBuilder(@"<meta(\w|\W)*\=[\x27\x22]?[\x27\x22]?keywords[\s]+content\=[\x27\x22](?<1>(\w|\W)*?)(?=[\x27\x22])|");
 sb.Append(@"<meta(\w|\W)*\=[\x27\x22]?description[\x27\x22]?[\s]+content\=[\x27\x22](?<1>(\w|\W)*?)(?=[\x27\x22])");
结果还是一样 
请问下大家如何改正这个正则 同时获取meta标签name=keywords和name=description中content的内容
在线等。。。

------解决方案--------------------
请LZ给点html代码,不然不好写