使用正则表达式将<a href="www.china104.com" target="_blank">中的target="_blank"过滤掉 怎么写?

解决方案 »

  1.   

    正则这个东西其实是不好搞的,有的东西网上一大堆。 你也可以不用正则把target="_blank" 过滤掉的。  JS也可以的!
      

  2.   

    正则不是有replace吗,替换target="_blank"为空
      

  3.   

    string str = Regex.Replace(inputstr,@"(<a\b[^>]*?)target=[""'][^""'>\s]+[""']([^>]*>)","$1$2", RegexOptions.IgnoreCase);
      

  4.   

    string input=@"<a href="www.china104.com" target="_blank">";
    string reslut=Regex.Replace(input,@"<a\s*href=""www.china104.com""\s*(?<target>(.*))>","");
      

  5.   

    yourhtml=Regex.Replace(yourhtml,@"(?i)(<a[^>]*?)target=(['""]?)_blank\2([^>]*?>)","$1$3");
      

  6.   

    <a href="www.china104.com" target="_blank">变成<a href="www.china104.com">
    <a href="www.china104.com" target="_self">变成<a href="www.china104.com">
    需要过滤掉target="_blank",target="_self",target="_parent",target="_top"
    target="_blank" 还有可能是这样的target='_blank',单引号,或者双引号
      

  7.   


    string str = Regex.Replace(inputstr,@"(<a\b[^>]*?)target=[""'][^""'>\s]+[""']([^>]*>)","$1$2", RegexOptions.IgnoreCase);
      

  8.   

    yourhtml=Regex.Replace(yourhtml,@"(?i)(<a[^>]*?)target=(['""]?)[^'""]+\2([^>]*?>)","$1$3");
      

  9.   

    下面这个string str = Regex.Replace(inputstr,@"(<a\b[^>]*?)target=[""']?[^""'>\s]+[""']([^>]*>)","$1$2", RegexOptions.IgnoreCase);满足以下情形:
    <a href="www.china104.com" target="_blank">
    <a href="www.china104.com" target="_self">
    <a href="www.china104.com" target='_self'>
    <a href="www.china104.com" target=_self>PS: 
    q107770540 的会把area标签也给替换了。高手匹配HTML时标签都会在 标签名后面加一个\b的。目的就是为了防止这种情况。