问题如标题,求一个正则表达式,支掉<img>里alt的内容,本人用的是asp.net,请给个完整的例子,谢谢.

解决方案 »

  1.   

    "string".replace(/^[^<]*<img\s+\w*alt='(\w*)'\w*\s+\/>$/gi,RegExp.$1,"")
      

  2.   


    string result = Regex.Replace(str, @"(?<=<img[\s\S]*?)alt=(['""]?)[^'""\s]*\1(?=[^>]*>)", "", RegexOptions.IgnoreCase);
      

  3.   


    Regex.replace(内容,"(<img[^alt]+?)alt="[^"]+?"([^>]*?>)","$1$2");
      

  4.   


    string content = "<img  src=\"sn.jpg\" border=\"0\">";
    string result = System.Text.RegularExpressions.Regex.Replace(content, "(<img[^alt]+?)alt=\"[^\"]+?\"([^>]*?>)", "$1$2");\\MessageBox.Show(result);
      

  5.   

    西门兄,[^alt]这可不像你写出的正则啊
      

  6.   


    Regex.Replace(str,@"(<img.*?)alt=(?:["'][^"'>]*["']|[^"'>\s]*)(.*?>)),"$1$2")
      

  7.   

    各位老鸟上面的正则表达式不是规范就是不好用,最接近的就是千年兄的如下:
    string result = Regex.Replace(str, @"(?<=<img[\s\S]*?)alt=(['""]?)[^'""\s]*\1(?=[^>]*>)", "", RegexOptions.IgnoreCase);
    但是碰到空格是不好用了。
    再请问一个问题,如果图片的alt里包含超连接<a></a>这种东西,怎么样才能把超连接去掉。
    过几天来看看,好用的当时就给分。
      

  8.   

    嗯,确实是少考虑了有空格的情况,这样试下string result = Regex.Replace(str, @"(?<=<img[\s\S]*?)alt=((['""])[^'""]*\2|\S+)(?=[^>]*>)", "", RegexOptions.IgnoreCase);再请问一个问题,如果图片的alt里包含超连接 <a> </a> 这种东西,怎么样才能把超连接去掉。 
    -------------------------
    给个例子先
      

  9.   

    例子如下:<IMG title="索尼爱立信 K860i惊现" style="BORDER-RIGHT: black 1px solid; BORDER-TOP: black 1px solid; BORDER-LEFT: black 1px solid; BORDER-BOTTOM: black 1px solid" alt=610万像素卡尔蔡司<a class=a_key target=_blank href=http://mobile.139shop.com/mobile/62/8756.htm>索尼爱立信</a> K860i惊现 src="http://profile.csdn.net/saviour_ss/picture/1.jpg">能帮我把alt里面的 610万像素卡尔蔡司<a class=a_key target=_blank href=http://mobile.139shop.com/mobile/62/8756.htm>索尼爱立信</a> K860i惊现
    去掉吗,最好是可能把<a class=a_key target=_blank href=http://mobile.139shop.com/mobile/62/8756.htm> , </a>去掉,中间的字(索尼爱立信)和(610万像素卡尔蔡司)与(K860i惊现)非常感谢千年兄的帮忙,不过可能是我不会用吧,
    Regex.Replace(str, @"(?<=<img[\s\S]*?)alt=((['""])[^'""]*\2|\S+)(?=[^>]*>)", "", RegexOptions.IgnoreCase);与
    Regex.Replace(str, @"(?<=<img[\s\S]*?)alt=(['""]?)[^'""\s]*\1(?=[^>]*>)", "", RegexOptions.IgnoreCase);的效果是一样的,我在线等。
      

  10.   

    alt=610万像素卡尔蔡司 <a   class=a_key   target=_blank   href=http://mobile.139shop.com/mobile/62/8756.htm> 索尼爱立信 </a>   K860i惊现这是不可能的吧,根本不符合规范,没有办法判断alt到哪里结束了能判断的,alt后要带“'”或“"”,如果不带,那就不能有空格,也就是到第一个空格结束string result = Regex.Replace(str, @"(?<=<img[\s\S]*?)alt=((['""])[^'""]*\2|\S+)(?=[^>]*>)", "", RegexOptions.IgnoreCase);
    这个我测试了,只要按规范,也就是上面说的是可以做到的