string tempStr = "<a class=\"cur\" id=\"prePage\" href=\"/bh/gg/18-55/p/1325606664948/\" onclick=\"return go($('#prePage'),'p','/bh/gg/18-55/p/1325606664948/');\">&lt;&lt;上一页 </a>                                    <a   class=\"cur\"  id=\"nextPage\" href=\"/bh/gg/18-55/n/1325554658899/\" onclick=\"return go($('#nextPage'),'n','/bh/gg/18-55/n/1325554658899/');\">下一页 &gt;&gt;</a>";
            string pattern = @"<a\s*class=..cur..\s*id=..nextPage..\s*href=..(?<url>.*?).\sonclick.*nextPage";
            foreach (Match m in Regex.Matches(tempStr, pattern))
            {
               string mk1 = m.Groups["url"].Value;
                if (textBox1.Text.Length < 5)
                {
                    textBox1.Text = "第一行--M2" + "m1" + mk1 + "m2";
                }
                else
                {
                    textBox1.Text = textBox1.Text + Environment.NewLine + "m1" + mk1;
                }
            }textBox没有任何文本显示。
正则在一些正则辅助软件都通过,但是在C#代码执行后却无任何显示。

解决方案 »

  1.   

    在工具里面能够匹配,但是并不是你的url捕获部分匹配的那个地址,所以,你的正则在这里应用时错误的//从你的应用来看,我觉得关键的部分应该是这些了
    href=\\['"](?<url>[^'"]*?)['"]
    //这部分正则url部分匹配的是你的网址
    //完整版
    string pattern = @"<a(?!href).*href=(['""])(?<url>[^'""]*?)\1.*?>";
      

  2.   

    string pattern = @"(?is)<a\s*class=(['""]?)cur\1\s*id=(['""]?)(nextPage)\2\s*href=(['""]?)(?<url>[^'""]+)\4\s.*?\3";
      

  3.   

    deerchao.net的那个正则工具通过,还有sunjoy的正则工具也通过。感情这些工具把\"当做2个字符了。
    在C#中,\"是作为一个字符.处理。