1.已经获得网页HTML
  WebRequest request = WebRequest.Create(webUrl);
  WebResponse response = request.GetResponse();
  StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.GetEncoding("gb2312"));
  return reader.ReadToEnd();2.查找<a href="/pages/company.aspx?version=cn&corpid=1111111111" class="name" target="_blank">AAAAAAAAAAAA</a>标记
3.得到corpid=1111111111 以及 AAAAAAAAAA使用Regex以及正则表达式实现,请问2,3步如何编写?谢谢啦!!!

解决方案 »

  1.   

    第三步可以这么搞
    string s = "..";   
    Regex re = new Regex(@"<a[^>]*href=(""(?<href>[^""]*)""|'(?<href>[^']*)'|(?<href>[^\s>]*))[^>]*>(?<text>.*?)</a>", RegexOptions.IgnoreCase | RegexOptions.Singleline);   
    Match m  = re.Match(s);   
    if(m.Success)   
    {   
      string link = m.Groups["href"].Value;   
      string text = Regex.Replace(m.Groups["text"].Value,"<[^>]*>","");   
      Console.WriteLine("link:{0}\ntext:{1}", link, text);   
    }
      

  2.   


                string No = "<a href=\"/pages/company.aspx?version=cn&corpid=1111111111\" class=\"name\" target=\"_blank\">AAAAAAAAAAAA </a>";// Console.ReadLine();
                Regex re = new Regex("<a\\s+href=\".*?&(.*?)\".*?>(.*?)</a>");
                MatchCollection mc = re.Matches(No);
                foreach (Match  m in mc)
                {
                    for (int i = 0; i < m.Groups.Count;i++)
                    {
                        Console.WriteLine("Group " + i + ": " + m.Groups[i].Value);
                    }
                }
      

  3.   

    string s = "..";   
    Regex re = new Regex(@"<a[^>]*href=(""(?<href>[^""]*)""|'(?<href>[^']*)'|(?<href>[^\s>]*))[^>]*>(?<text>.*?)</a>", RegexOptions.IgnoreCase | RegexOptions.Singleline);   
    Match m  = re.Match(s);   
    if(m.Success)   
    {   
      string link = m.Groups["href"].Value;   
      string text = Regex.Replace(m.Groups["text"].Value,"<[^>]*>","");   
      Console.WriteLine("link:{0}\ntext:{1}", link, text);   
    }
      

  4.   

    Regex reg = new Regex(@"(?i)<a href=(['""])(?<link>[^'""]*)\1[^>]*>(?<text>[\s\S]*?)</a>"); 
    foreach(Match m in reg.Matches("你的网页代码"))
    {
     string link=m.Groups["link"].Value;//结果是/pages/company.aspx?version=cn&corpid=1111111111
     string text=m.Groups["text"].Value;//结果是AAAAAAAAAA 
    }