一个字符串前面是“http://”,最后面是“jpg”或“gif”,或“png”或“ico”,怎样用正则表达式表达出来啊,中间数字、字符不限,个数不限。

解决方案 »

  1.   

    http://(?:(?!http://).)*\.(jpe*g|png|gif|ico)
      

  2.   


    String s = "http://item.slide.com/r/1/96/i/kIYwFkPOzT8Hdojp1JaAoASAOuStEX4T/2.ico http://ipicture.ru/uploads/080410/fQy4Gw7XkR.jpg"+
               " http://img131.hotlinkimage.com/thumb/1322127986.jpeg http://ipictur.jpg";
    Pattern p = Pattern.compile("http://(?:(?!http://).)*\\.(jpg|png|gif|ico)");
    Matcher m = p.matcher(s);
    while (m.find()) {
    System.out.println(m.group(0));
    }
      

  3.   


    恩 ,很好,非常感谢。
    为什么上面那个人qqlwq123回答的正则表达式单个测试时可行,可放在一大串字符串里又有问题,你知道么
      

  4.   

    你把他的正则改为 http://(.+?)(jpg|gif|png|ico)  也是对的
      

  5.   

    一大串?
    试下这样吧"http://.+?(jpg|gif|png|ico)"