Java Android正则表达式从站点获取图像url
我正在制作一个应用程序,我有这个问题 我使用模式识别代码来查找站点上文章的图像url 问题是,以我的方式,它抓取的第一张照片非常小 模式p=Pattern.compile(“.\.jpg”); 有一个XL图像,我想抓住它的目的地 我想使用一种模式,在链接的末尾是这样的 Pattern p=Pattern.compile((.\[\uxl]+.jpg)) 或 Pattern p=Pattern.compile(“.\\ uxl.jpg”) 这就是我需要你帮助的地方 这是密码 公开募捐{ 因为在网站上还有一个jpg,它有这个XL 这些都是给定页面上的.jpg href=“/media/k2/items/cache/df95c3d9029788dcdb6f520e9151056c_XL.jpg” /媒体/k2/items/cache/df95c3d9029788dcdb6f520e9151056c_L.jpg” “/images/stories/atnea2.jpg” /图片/故事/diarkeias bc.jpg“Java Android正则表达式从站点获取图像url,java,android,regex,pattern-matching,expression,Java,Android,Regex,Pattern Matching,Expression,我正在制作一个应用程序,我有这个问题 我使用模式识别代码来查找站点上文章的图像url 问题是,以我的方式,它抓取的第一张照片非常小 模式p=Pattern.compile(“.\.jpg”); 有一个XL图像,我想抓住它的目的地 我想使用一种模式,在链接的末尾是这样的 Pattern p=Pattern.compile((.\[\uxl]+.jpg)) 或 Pattern p=Pattern.compile(“.\\ uxl.jpg”) 这就是我需要你帮助的地方 这是密码 公开募捐{ 因为在网站
您只想检查以“.jpg”结尾的字符串,请使用正则表达式
String regex=“[\\x20-\\x7E]*\\.jpg$”
如果要查找文件的精确匹配项,请以*XL.jpg结尾
字符串url=”“;
String regex=“[0-9a-zA-Z\\-\\.\uu/:]*XL\\\.jpg$”;
System.out.println(url.matches(regex));//如果大小写匹配,则为print true
如果URL字符串中有空格或特殊字符以及0-9a-zA-Z字符,请使用正则表达式。(这将返回以*XL.jpg结尾的任何字符串)
字符串url=“%!@$%/cache.sample_ssXL.jpg”;
字符串正则表达式=“[\\x20-\\x7E]*XL\\.jpg$”;此正则表达式:
/(媒体图像)/[^\.]*\.jpg
匹配您的所有样本:
href=“/media/k2/items/cache/df95c3d9029788dcdb6f520e9151056c_XL.jpg”
/媒体/k2/items/cache/df95c3d9029788dcdb6f520e9151056c_L.jpg”
“/images/stories/atnea2.jpg”
/images/stories/diarkeias bc.jpg“好的,我解决了它。我使用了这个模式p=Pattern.compile(“/media/k2/items/cache.*\\XL.jpg”);因为示例不是从http://..... 我使用一个使用标准的字符串局部变量,并将匹配器字符串放入………..string imglink=“partiallink;
//Pattern p = Pattern.compile("http://planetaris.gr/media/k2/items/cache.*\\.jpg");
//Pattern p = Pattern.compile("http://planetaris.gr/media/k2/items/cache.*\\._XL.jpg");
Pattern p = Pattern.compile("(http://planetaris.gr/media/k2/items/cache.)+(.*\\[_XL]+(.jpg))");
try {
URL url = new URL(selectedRssItem.getLink());
URLConnection urlc = url.openConnection();
Log.d("MIMIS_LINK", url.toString());
BufferedInputStream buffer = new BufferedInputStream(urlc.getInputStream());
builder = new StringBuilder();
int byteRead;
while ((byteRead = buffer.read()) != -1)
builder.append((char) byteRead);
buffer.close();
} catch (MalformedURLException ex) {
ex.printStackTrace();
} catch (IOException ex) {
ex.printStackTrace();
}
Matcher m = p.matcher(builder.toString());
if (m.find()) {
try {
bitmap = BitmapFactory.decodeStream((InputStream)new URL(m.group(0)).getContent());
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Log.d("MIMIS_MATCHER", selectedRssItem.getDescription().toString());
};
handler.sendEmptyMessage(0);
}
}.start();
}
private Handler handler = new Handler() {
//@SuppressWarnings("null")
@Override
public void handleMessage(Message msg) {
mSpinner.clearAnimation();
mSpinner.setVisibility(View.GONE);
//progressDialog.dismiss();
myimageview.setImageBitmap(bitmap);
if (bitmap==null){
myimageview.setImageResource(R.drawable.aris_no_image);
};
}
};
String url = "http://planetaris.gr/media/k2/items/cache.sample_XL.jpg";
String regex = "[0-9a-zA-Z\\-\\._/:]*[XL]\\.jpg$";
System.out.println(url.matches(regex)); //this will be print true if case matches files ends with *XL.jpg and *X.jpg and *L.jpg.