本帖最后由 yyyong8888 于 2011-02-28 11:35:49 编辑

解决方案 »

  1.   

    不对 吧!你要的结果和原先的字符串一样啊
    你是不是只要 href里面的东西啊
      

  2.   


     string url = "<a href=\"http://www.xxx.com.cn/\" target=\"_blank\">湖南</a> <a href=\"www.xxx.com.cn/\">湖北</a> <a href='www.xxx.com.cn/a.aspx?id=1'>广东</a> <a href='a.aspx?id=1'>广西</a>";
                string imgURL = @"<a.*?href=""(?<href>[^""]*)""[^>]*>"; 
                Regex reg = new Regex(imgURL, RegexOptions.IgnoreCase);
                MatchCollection mc = reg.Matches(url);
                foreach (Match m in mc)
                {
                    if (m.Groups["href"].Value.IndexOf("http://") == -1) 
                    {
                        string sss = m.Groups["href"].Value;
                        url = url.Replace(sss, "http://" + sss);
                    }
                }
                string jieguo = url;
      

  3.   


      string jieguo = url;
                //或者MessageBox(url);
      

  4.   

    汗,这代码写的那叫一个不优雅,先实现功能,有时间再优化吧string url = @"<a href=""http://www.xxx.com.cn/"" target=""_blank"">湖南</a>
    <a href=""www.xxx.com.cn/"">湖北</a>
    <a href='www.xxx.com.cn/a.aspx?id=1'>广东</a>
    <a href='a.aspx?id=1'>广西</a>";
    Regex reg = new Regex(@"(?i)(<a[^>]*?href=(['""]?))((http://)?(www\.xxx\.com\.cn/)?[^'""\s>]*)(?=\2)");
    string result = reg.Replace(url, delegate(Match m) { string temp = m.Groups[3].Value; if (!m.Groups[5].Success) temp = "www.xxx.com.cn/" + temp; if (!m.Groups[4].Success) temp = "http://" + temp; return m.Groups[1].Value + temp; });
    richTextBox2.Text = result;