str = "http://item.slide.com/r/1/96/i/kIYwFkPOzT8Hdojp1JaAoASAOuStEX4T/ <br>http://ipicture.ru/uploads/080410/fQy4Gw7XkR.jpg <br> http://img131.hotlinkimage.com/thumb/1322127986.jpeg";我用 p = Pattern.compile("http://(.*?).jpeg|http://(.*?).jpg");
总是把str 全部匹配了
我想把
.jpg
.jpeg
拿出来
总是把str 全部匹配了
我想把
.jpg
.jpeg
拿出来
http://img131.hotlinkimage.com/thumb/1322127986.jpeg我要把这2张图片提取出来
.....
System.out.println(m.group(0));
如果你只想要不包含扩展名的文件名
String a = "asdfghjkl.jpg";//a是变量
public static void main(String[] args){
Test1 t = new Test1();
if( t.a.substring( 0,t.a.length()-4 ).endsWith(".") ){
String b = t.a.substring(0, t.a.length()-5);
System.out.print(b);
}else if(t.a.substring(0,t.a.length()-3).endsWith(".")){
String b = t.a.substring(0, t.a.length()-4);
System.out.print(b);
} }
这样能实现。
public static List<String> match(String input, String regex) {
Pattern p = Pattern.compile(regex);
List<String> result = new ArrayList<String>(); Matcher matcher = p.matcher(input);
while (matcher.find()) {
result.add(matcher.group(1));
} return result;
} public static void main(String[] args) {
String str = "http://item.slide.com/r/1/96/i/kIYwFkPOzT8Hdojp1JaAoASAOuStEX4T/ <br>http://ipicture.ru/uploads/080410/fQy4Gw7XkR.jpg <br> http://img131.hotlinkimage.com/thumb/1322127986.jpeg"; System.out.println(match(str, "http\\:\\/\\/.+?\\/([^\\.\\/]+\\.(jpg|jpeg))").toString());
}
}
我匹配的结果是
http://ipicture.ru/uploads/080410/fQy4Gw7XkR.jpg
http://img131.hotlinkimage.com/thumb/1322127986.jpeg
要带完整的url
可这句有点看不明白?
大哥能解释下不
http://(?:(?!http://).)*\\.jpe*g
http://(?: 这里的 ?:实在是看不懂
这样输出的结果不是我向要,你试试我要的是
http://ipicture.ru/uploads/080410/fQy4Gw7XkR.jpg
http://img131.hotlinkimage.com/thumb/1322127986.jpeg