string tmp= string.Format(@"<a href=\\{0}u.php\?uid=\d+\\{1}>.*</a>","\"","\"");

解决方案 »

  1.   

    Regex reg = new Regex(@"<a href=""u.php\?uid=\d+"">.*?</a>");
    .*加个问号,否则你可能会得到不正确的结果。
      

  2.   

    你被转义搞晕了,正则里的\在C#还要转义
    var reg = new Regex("<a href=(['\"])u.php\\?uid=\\d+(\\1)>.*</a>");
      

  3.   


    源码里有很多这样的:<a href="u.php?uid=66373">轩辕紫易</a>
    我只想要 轩辕紫易 这个,其他都不要,uid标签中的用户名是不同的,如何一次抓出来?,我都是2次匹配,也就是说先从整体提取<a href="u.php?uid=66373">轩辕紫易</a>这样的出来放到一个变量,然后再二次提取,最终只需要那个用户名(轩辕紫易)
      

  4.   

    感谢各位,终于搞定了,也弄懂了问题的原因,这个问题搞了好长时间啊。
    找到一次提取的代码了。
    String u_id = regur2(html, @"<a href=""u.php\?uid=\d+"">(?<key>.*?)</a>");
     public String regur2(string str, string reg1)
            {
                Regex reg = new Regex(reg1, RegexOptions.IgnoreCase);
                MatchCollection mc = reg.Matches(str);
                String list1 = String.Empty;
                foreach (Match m in mc)
                {
                    list1 = list1 + m.Groups["key"].Value + ",";
                }
                return list1;        }