<meta\s+(name=\s*[\"\']?keywords[\"\']?\s+content=\s*[\"\']?[^>]+[\"\']?\s*>)|(<meta\s+content=\s*[\"\']?[^>]+[\"\']? name=\s*[\"\']?keywords[\"\']?\s*)[\/]?\s?>上面这个正则表达式可以匹配下面这段字符
------------------------
<META content=".net,正则表达式,使用,反向引用" name="Keywords" />
------------------------现在我需要获取到content的内容,我应该怎么改这个正则了,类似于下面这个调用 Regex searchTitle = new Regex("<b>(?<b>[\\s\\S]*?)<\\/b>", RegexOptions.IgnoreCase);
if (oM.Success)
{
Response.Write(oM.Groups["b"].Value.Trim());
}
------------------------
<META content=".net,正则表达式,使用,反向引用" name="Keywords" />
------------------------现在我需要获取到content的内容,我应该怎么改这个正则了,类似于下面这个调用 Regex searchTitle = new Regex("<b>(?<b>[\\s\\S]*?)<\\/b>", RegexOptions.IgnoreCase);
if (oM.Success)
{
Response.Write(oM.Groups["b"].Value.Trim());
}
把<META content=" 和" name="Keywords" />替换成空 就可以得到content了
string str="<META content=\".net,正则表达式,使用,反向引用\" name=\"Keywords\" /> ";
System.Text.RegularExpressions.Regex reg=new System.Text.RegularExpressions.Regex(@"<meta\s+.*?content=(['""]?)(?<content>[^""'>]*)(\1)\s+.*?>",System.Text.RegularExpressions.RegexOptions.IgnoreCase);
System.Text.RegularExpressions.MatchCollection m = reg.Matches(str); //设定要查找的字符串
for (int i = 0; i < m.Count; i++)
{
Response.Write(m[i].Groups["content"].ToString()+"<br>");
}
string str="<html>asfsad<META content=\".net,正则表达式,使用,反向引用\" name=\"Keywords\" /> asfasfas<META name=\"Keywords\" content=\"测试第二种情况\" />";
System.Text.RegularExpressions.Regex reg=new System.Text.RegularExpressions.Regex(@"<meta(\s+content=(['""]?)(?<content>[^""'>]*)(\2)\s+name=(['""]?)Keywords(\4)\s+)|(\s+name=(['""]?)Keywords(['""]?)\s+content=(['""]?)(?<content>[^""'>]*)(['""]?)\s+).*?>",System.Text.RegularExpressions.RegexOptions.IgnoreCase);
System.Text.RegularExpressions.MatchCollection m = reg.Matches(str); //设定要查找的字符串
for (int i = 0; i < m.Count; i++)
{
Response.Write(m[i].Groups["content"].ToString()+"<br>");
}
1.如果代码符合xml标准的话建议用xml来实现.
2.网上好像有那种可以解析hmtl格的组件parehtml;
string text = "dfdfdfd<META content=\".net,正则表达式,使用,反向引用\" name=\"Keywords\" />dd";
text = Regex.Match(text, @"(?<=meta.+?content=['""]?)[^""']+(?=[""'])", RegexOptions.IgnoreCase).Value;
text = Regex.Match(text, @"(?<=meta.+?(?<name>name=""Keywords"".+?)*content=['""]?)[^""']+(?=[""'](?(name)|.+name=""Keywords""))", RegexOptions.IgnoreCase).Value;