asp.net正则表达式学习例子

asp.net 获取网页Document时常会用到

edited by:曹永思-博客园

1、获取某个class的div内的标签

获取<div class="imgList2">****</div>内的标签

方法一:

 string g = " <div.*?class=\"imgList2\">(?<html>[\\s\\S]*?)</div>";
Regex reg = new Regex(g, RegexOptions.None);
MatchCollection mc = reg.Matches(strResult);
string v = "";
foreach (Match m in mc)
{
v += m.Value + "\r\n";
}

方法二(通用方法,获取指定前后内容之间的内容):

string list_a_group_str = GetValue(strResult.Trim(), "<div class=\"imgList2\">", "</div>");
  public static string GetValue(string str, string start, string end)
{
Regex regex = new Regex(string.Concat(new string[] {
"(?<=(",
start,
"))[.\\s\\S]*?(?=(",
end,
"))"
}), RegexOptions.Multiline | RegexOptions.Singleline);
return regex.Match(str).Value;
}

2、获取所有a标签的href和text

获取<div class="page both\"></div>里所有a标签的href和text

string list_page_group_str = GetValue(strResult.Trim(), "<div class=\"page both\">", "</div>");
Regex reg = new Regex(@"(?is)<a(?:(?!href=).)*href=(['""]?)(?<url>[^""\s>]*)\1[^>]*>(?<text>(?:(?!</?a\b).)*)</a>");
MatchCollection mc = reg.Matches(list_page_group_str);
foreach (Match m in mc)
{
string url = m.Groups["url"].Value + "\n";
string text = m.Groups["text"].Value + "\n";
}
上一篇:ThinkPHP开发api时多级控制器的访问方法


下一篇:onethink插件二(首页图片轮播)