正则表达式怎么去获取网页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代码,不然不好写