小弟遇到一个问题,给所有的没有target的<a>标签添加  target="_blank",一直弄不好了,求大虾帮下忙。

解决方案 »

  1.   

    str=Regex.Replace(str,"(<a\\b)([^>]*?>)",m=>m.Value.Contains("target")?string.Format("{0}{1}{2}",m.Value:m.Groups[1].Value,"target=\"_blank\"",m.Value:m.Groups[2].Value));
      

  2.   

    string t="target=\"_blank\"";
    str=Regex.Replace(str,"(<a\\b)([^>]*?>)",m=>m.Value.Contains(t)?m.Value:string.Format("{0}{1}{2}",m.Value:m.Groups[1].Value,t,m.Value:m.Groups[2].Value));
      

  3.   

    m.Value:m.Groups[1].Value, 这里边编译不通过。
      

  4.   

    .net 2.0 可以这样写:string t="target=\"_blank\"";
    str=Regex.Replace(str,"(<a\\b)([^>]*?>)",delegate(Match m){ return m.Value.Contains(t)?m.Value:string.Format("{0}{1}{2}",m.Value:m.Groups[1].Value,t,m.Value:m.Groups[2].Value;});
      

  5.   

    .net 2.0 可以这样写:
    string t="target=\"_blank\"";
    str=Regex.Replace(str,"(<a\\b)([^>]*?>)",delegate(Match m){ return m.Value.Contains(t)?m.Value:string.Format("{0}{1}{2}",m.Groups[1].Value,t,m.Groups[2].Value);});.net 3.0 +:string t="target=\"_blank\"";
    str=Regex.Replace(str,"(<a\\b)([^>]*?>)",m=>m.Value.Contains(t)?m.Value:string.Format("{0}{1}{2}",m.Groups[1].Value,t,m.Groups[2].Value));
      

  6.   

    谢谢你!string t="target=\"_blank\""; 这个前边应该有个空格 不然就跟<A>在一起了。。
    搞定问题了。