请高手帮忙写个正则表达式,实现:
在<img> 控件中的 src属性包含 show 四个字符,网上看到有个这样写的,不知道怎么改,Matcher m = Pattern.compile("src\\s*=\\s*\"?(.*?)(\"|>|\\s+)").matcher(img);感觉正则表达式很难掌握啊。谢谢

解决方案 »

  1.   

    <img.*src=.*show.*>
    匹配<img src="xxxshowxxx.xxx">
      

  2.   

    ".*\\s*<img\\ssrc\\s*=\\s*.*show.*\\s*>\\s*.*"
    这个就可以匹配的
      

  3.   

    ".*\\s*<img\\s*src\\s*=\\s*.*show.*\\s*>\\s*.*"这个适用的范围更广一点
      

  4.   

    看这个吧,应该很容易看懂,另外推荐regexbuddy工具
      

  5.   

    下面有测试代码.你可以试下.import java.util.regex.Matcher;
    import java.util.regex.Pattern;public class Test{
    public static void main(String[] args){
    String content = "<img src=\"invalid\" attr1=\"value1\"/>this is the img tag <img src=\"33show11\" attr1=\"value1\"/> test content <img attr2=\"value2\" src=\"fdshowa\" attr3=\"value3\">not content</img>";
    String regex = "<img(\\s+(?!src=)\\w+\\s*=\"[^\"]+\")*(\\s+src\\s*=\"[^\"]*show[^\"]*\")(\\s+(?!src=)\\w+\\s*=\"[^\"]+\")*\\s*(/>|>.*</img>)";
    Matcher matcher = Pattern.compile(regex).matcher(content);
    while(matcher.find()){
    System.out.println(matcher.group(0));
    }
    }
    }
      

  6.   

    上面的代码可以针对多属性以及类似<tag attr="aa">content</tag>类似这样的全表达