请朋友帮忙写一个正则表达式: 如代码: 
<a href=http://域名,可以是绝对域名,也可是相对域名/test.php?id=xxx&p=test  target=_blank> <font color=#0000FF>测试标题 </font> </a> 要求用正则提取出 
<a href=http://域名,可以是绝对域名,也可是相对域名/test.php?id=xxx&p=test target=_blank> <font color=#0000FF> </font> </a> 其中判断这个超级连接的是否被提取的唯一标识是 <a>连接标记里面要包含test.php,求解. 注:href=后面无单引号或双引号

解决方案 »

  1.   


    string str = "<a href=http://域名,可以是绝对域名,也可是相对域名/test.php?id=xxx&p=test  target=_blank> <font color=#0000FF>测试标题 </font> </a>";
    Regex re = new Regex(@"(<a\s+href\s*=\s*[^>]+>\s*<[^>]+>)[^<]*(<[^>]*>\s*</a>)");
    string s = re.Replace(str, "$1$2");
      

  2.   

    其中判断这个超级连接的是否被提取的唯一标识是 <a>连接标记里面要包含test.php,求解.请楼上的在修改完整
      

  3.   


    string str = "<a href=http://域名,可以是绝对域名,也可是相对域名/test.php?id=xxx&p=test  target=_blank> <font color=#0000FF>测试标题 </font> </a>";
    Regex re = new Regex(@"(<a\s+href\s*=\s*\S+?test.php[^>]+>\s*<[^>]+>)[^<]*(<[^>]*>\s*</a>)");
    string s = re.Replace(str, "$1$2");试一下
      

  4.   


    string str = "<a href=http://域名,可以是绝对域名,也可是相对域名/test.php?id=xxx&p=test  target=_blank> <font color=#0000FF>测试标题 </font> </a>";
    Regex re = new Regex(@"(<a\s+href\s*=\s*\S+?test.php[^>]+>\s*<[^>]+>)[^<]*(<[^>]*>\s*</a>)");
    string s = re.Replace(str, "$1$2");试一下
      

  5.   

    还是有点BUG我将 /test.php?id=xxx&p=test    换成 /12345.php?id=xxx&p=test 还是可以提出结果,请帮忙 
      

  6.   

    如果将test.php换成1234.php 那么这个正则不匹配字符串 也就是说你的字符串中不含有test.php是不符合你的要求的 
    那么正则是不会替换你的字符串的 你得到的字符串和你得源字符串是一样的
    如果是 当字符串中含有test.php才替换的话 可以添加一个判断string str = "<a href=http://域名,可以是绝对域名,也可是相对域名/test.php?id=xxx&p=test  target=_blank> <font color=#0000FF>测试标题 </font> </a>";
    Regex re = new Regex(@"(<a\s+href\s*=\s*\S+?test.php[^>]+>\s*<[^>]+>)[^<]*(<[^>]*>\s*</a>)");
    string s = "";
    if(re.IsMatch(str))
    {
        s = re.Replace(str, "$1$2");
    }
    不知道是不是这个意思