<a onclick="window.location.href='./1.asp?id=12555&cid=12'"></a>
<a onclick="window.location.href='./1.asp?id=12555&cid=12'"></a>
<a onclick="window.location.href='./1.asp?id=12555&cid=12&zzz=1'"></a>
<a onclick="window.location.href='./1.asp?id=12555&cid=12&zzz=3'"></a>post一个网页。获取了源代码。
我想匹配这些的url地址
可前面有些是没有zzz参数的。。
我想问的有没办法不仅可以匹配这4个URL而且还能获取到zzz的参数
(并且能用Match.Groups["zzz"].Value)输出的。。那些没带ZZZ参数的那分组里就为空各位老大帮帮忙

解决方案 »

  1.   

    try...            string test = @"<a onclick=""window.location.href='./1.asp?id=12555&cid=12'""></a>
    <a onclick=""window.location.href='./1.asp?id=12555&cid=12'""></a>
    <a onclick=""window.location.href='./1.asp?id=12555&cid=12&zzz=1'""></a>
    <a onclick=""window.location.href='./1.asp?id=12555&cid=12&zzz=3'""></a>";
                Regex reg = new Regex(@"(?i)<a\s*onclick=""window.location.href='(?<url>(?:(?!zzz=)[^'])*(?<zzz>zzz=[^'""]+)?[^']*)'""[^>]*>");
                MatchCollection mc = reg.Matches(test);
                foreach (Match m in mc)
                {
                    richTextBox2.Text += m.Groups["url"].Value + "\n";
                    richTextBox2.Text += m.Groups["zzz"].Value + "\n";            }
      

  2.   


    好复杂,我给你简化下:
                Regex reg = new Regex(@"(?i)<a\s*onclick=""window.location.href='(?<url>(?:(?!zzz=)[^'])*(?:zzz=(?<zzz>\d+))?)'");