哪位好心朋友给一个过滤html代码但保留图片地址的正则表达式,万分感谢啦!

解决方案 »

  1.   

    补充一下:过滤html代码但保留图片地址还要保留标签之间的文字
      

  2.   

    刚才用以上方法基本实现了,还要获得src后的网址,并在获取src地址后,改成
    能实现吗
      

  3.   

    比如
    <b>前面章节中讲到的表达式,无论是只能匹配一种字符的表达式,还是可以匹配多种字符其中任意一个的表达式,都只能匹配一次。匹配下一个时,匹配结果是:成功;在修饰匹配次数的特殊符号后再加上一个 "?"号,则可以使匹配次数不定的表达式尽可能少的匹配,使可匹配可不匹配的表达式</b><img src="http://www.****.com/ddd.jpg" width="800">尽可能的 "不匹配"。如果少匹配就会导致整个表达式匹配失败的时候,与贪婪模式类似,非贪婪模式会最小限度的再匹配一些,以使整个表达式匹配成功。为了让整个表达式匹配成功变成:
    前面章节中讲到的表达式,无论是只能匹配一种字符的表达式,还是可以匹配多种字符其中任意一个的表达式,都只能匹配一次。匹配下一个时,匹配结果是:成功;在修饰匹配次数的特殊符号后再加上一个 "?"号,则可以使匹配次数不定的表达式尽可能少的匹配,使可匹配可不匹配的表达式尽可能的 "不匹配"。如果少匹配就会导致整个表达式匹配失败的时候,与贪婪模式类似,非贪婪模式会最小限度的再匹配一些,以使整个表达式匹配成功。为了让整个表达式匹配成功
      

  4.   

    try...Regex regTag = new Regex(@"<[^>]*>");
    Regex regImg = new Regex(@"(?i)<img[^>]*?src=(['""]?)(?<src>[^'""\s>]+)\1[^>]*>");
    string result = regTag.Replace(yourStr, delegate(Match m) {if(m.Value.ToLower().StartsWith("<img")) return regImg.Replace(m.Value, ""); return ""; });
      

  5.   

                string result = regTag.Replace(yourStr, delegate(Match m) {if(m.Value.ToLower().StartsWith("<img")) return regImg.Replace(m.Value, ""); return ""; });
     这句执行不了!
      

  6.   

    你用的什么环境,.NET 1.1 ?
    private string RegReplace(Match m)
    {
        if (m.Value.ToLower().StartsWith("<img"))
        {
            return Regex.Replace(m.Value, @"(?i)<img[^>]*?src=(['""]?)(?<src>[^'""\s>]+)\1[^>]*>" , "");
        }
        return ""; 
    }
    //调用
    Regex regTag = new Regex(@"<[^>]*>");
    string result = regTag.Replace(yourStr, RegReplace);
      

  7.   

    <DIV style=""MARGIN-BOTTOM: 10px""><SELECT onchange=javascript:window.location=(this.options[this.selectedIndex].value); name=gotopage> <OPTION value=http://women.sohu.com/20091222/n269097788.shtml selected>第1页:婚后感到婚姻的平淡</OPTION> <OPTION value=http://women.sohu.com/20091222/n269097788_1.shtml>第2页:遭遇一场万劫不复的恋情</OPTION> <OPTION value=http://women.sohu.com/20091222/n269097788_2.shtml>第3页:情感日记使我私情败露</OPTION> <OPTION value=http://women.sohu.com/20091222/n269097788_3.shtml>第4页:割腕自杀留不住无情的情人</OPTION></SELECT></DIV>
    <DIV class=""abstract bgB clear"" style=""BORDER-RIGHT: #d4d4d4 1px solid; PADDING-RIGHT: 10px; BORDER-TOP: #d4d4d4 1px solid; PADDING-LEFT: 10px; BACKGROUND: none transparent scroll repeat 0% 0%; PADDING-BOTTOM: 10px; BORDER-LEFT: #d4d4d4 1px solid; PADDING-TOP: 10px; BORDER-BOTTOM: #d4d4d4 1px solid"">  我白天上完课回到家,一份离婚协议书已经摆在了客厅的餐桌上。他还另外留了个条,上面说,限我一个星期搬出家门,否则,他还要去揍那个男人,直至我搬走为止。 </DIV>
    <P>&nbsp;</P>
    <TABLE cellSpacing=0 cellPadding=0 align=center border=0>
    <TBODY>
    <TR>
    <TD align=middle>
    <TABLE cellSpacing=0 cellPadding=0 border=0>
    <TBODY>
    <TR>
    <TD><IMG alt="""" src=""http://photocdn.sohu.com/20091221/Img269097789.jpg"" align=middle></TD></TR></TBODY></TABLE></TD></TR>
    <TR>
    <TD style=""FONT-SIZE: 12px"" align=middle scw_ig=""yes""></TD></TR></TBODY></TABLE><BR>
    <P>  <STRONG>(一) 婚后感到婚姻的平淡</STRONG></P>
    <P>  我和我的丈夫是大学同学。大一那年,在新学期的迎新晚会上,当他手持萨克斯管笑容满面地走上台去的时候,我一下子就迷上他了——高高的个子,长发披肩,鼻梁很坚挺,眼睛又有点凹下去,整张脸的轮廓看上去简直就是希腊人的雕塑。</P>
    <P>  也算是一见钟情吧,我们顺理成章地坠入情网。</P>
    <P>  他是学中文的,我是学英语的,大学四年,我们如胶似漆地恋爱了四年。那是我们最幸福的四年,最甜蜜的四年。可是,大学毕业以后,当我们迫不及待地步入婚姻殿堂时,这种幸福和甜蜜就像不断被兑入水的一杯茶,越来越没有滋味了。</P>
    <P>  可能是恋爱的时间太长,激情已经耗尽,也可能是他太忙了,白天上班,晚上又要到一些茶吧酒吧去演出,挣点儿外块,深更半夜才能回来,回来以后倒头就睡,在生理和心理上都冷落了我,没有多久,我就渐渐感到了婚姻的平淡和乏味。</P>
    <P>  在婚后的第三年,也就是去年,和我同在一所中学任教的一个同事了解了我内心的空虚和寂寞之后告诉我,上网聊天,可以解除你的寂寞,还可以使你从封闭的小圈子走出来。</P>
    <P>  就这样,我买了台电脑回来,并很快就学会了打字和操作,然后开始上网聊天。我现在分析,那时,我心底里其实早已埋藏着与外界接触的强烈渴望,只不过网络将这种渴望变成了现实。</P>
    <TABLE cellSpacing=0 cellPadding=0 width=""100%"" border=0>
    <TBODY>
    <TR>
    <TD style=""FONT-WEIGHT: bold; FONT-SIZE: 14px"" align=middle>[1] [<A href=""http://women.sohu.com/20091222/n269097788_1.shtml"">2</A>] [<A href=""http://women.sohu.com/20091222/n269097788_2.shtml"">3</A>] [<A href=""http://women.sohu.com/20091222/n269097788_3.shtml"">4</A>] [<A href=""http://women.sohu.com/20091222/n269097788_1.shtml"">下一页</A>] </TD></TR></TBODY></TABLE>广告flash代码!
      

  8.   

    去掉所有html把其中图片地址改为
      

  9.   

    @"<(image)[^>]+(?:src=['|""]?([^'|\""|\s|>]+)['|""]?)[^>]+>([^<]+)</\1>"  match.Groups[2].value = src
    match.Groups[3].value = text
      

  10.   

    private string RegReplace(Match m)
            {
                if (m.Value.ToLower().StartsWith("<img src=\"../face"))
                {
                    return Regex.Replace(m.Value, @"(?i)<img[^>]*?src=(['""]?)(?<src>[^'""\s>]+)\1[^>]*>", "");
                }
                return "";
            }
    非常有用