导航:首页 > 编程语言 > java正则图片

java正则图片

发布时间:2024-05-07 13:48:38

java中如何使用正则匹配一对中括号中的引号冒号(":),目的是在冒号后加个空格

我觉得楼上那位说把中括号里的取出来处理了再弄回去可行啊,把原字符串一分为三,把中间处理了再组合起来,但是我写的这个很low只能处理一次中括号:

❷ Java中什么是正则表达式

正则表达式 就是将一个类型的数据 按照一定方式 写成正则表达式的形式 这样可以辨别数据是否符合这一类型的数据 比如我们的身份证号码 就是有一定的规则的 这样我们写一个 正则表达式 和别人输入的身份证号码 比对 如果符合这个正则表达式的规则 就是身份证号码

❸ 急 java里用正则替换掉img标签的src里的内容

我觉得可以先用正则把先匹配出imgName = “图片名.gif”,然后再替换:

content = content.replaceAll("(.*?)src=\"(.*?)","$1src=\"../image/" + imgName);

❹ java截取网址图片路径到指定目录。并改写路径地址

1你想把src里面的jpg图片保存到本地某个目录路径里面

2你再把你保存的这个目录路径设置回去

3抓取网页图片
importjava.io.BufferedReader;
importjava.io.File;
importjava.io.FileOutputStream;
importjava.io.InputStream;
importjava.io.InputStreamReader;
importjava.io.OutputStream;
importjava.net.URL;
importjava.net.URLConnection;
importjava.util.ArrayList;
importjava.util.Calendar;
importjava.util.List;
importjava.util.regex.Matcher;
importjava.util.regex.Pattern;
importcom.sun.xml.internal.fastinfoset.stax.events.Util;

publicclassCatchPicture{

publicstaticvoidmain(String[]args){
//TODOAuto-generatedmethodstub
//定义抓取图片的正则表达式
Stringregular="[*]<b>.*?</b><br/><imgsrc="(.*?)"border=0alt='(.*?)'style=".*?"class=".*?">
";
List<Picture>list=newCatchPicture().lookWeiboPic("http://gaoxiao.jokeji.cn/GrapHtml/dongtai/20120921221658.htm","GBK",regular,"2,1");
System.out.println(list.size());
}
//根据URL查看网站上的图片
publicList<Picture>lookWeiboPic(Stringurl,Stringcharset,Stringregular,StringattIndex){
List<Picture>list=newArrayList<Picture>();
try{
//获取填写的url
//判断所属网站获取正则表达式
//获取图片存放到list集合
if(!Util.isEmptyString(url)){
Stringhtmls=getPageSource(url.trim(),charset);
Patternpattern=null;
pattern=Pattern.compile(regular.trim());
if(!Util.isEmptyString(htmls)){
Matchermatcher=pattern.matcher(htmls);

//得到参数属性顺序
String[]sort=regular.trim().split(",");//下标:0表示标题title,1表示图片路径
//判断后缀后得到网站的请求头部http://www.moonbasa.com/p-032111106.html-->得到http://www.moonbasa.com
String[]suffix;
suffix=url.trim().split("cn");
Stringhttphread="";
if(suffix.length>1){
httphread=suffix[0]+"cn";

}else{
suffix=url.trim().split("com");
httphread=suffix[0]+"com";
}
//循环匹配找到的
while(matcher.find()){
Picturepicture=newPicture();

//匹配出title
if(-1==Integer.parseInt(sort[0])){
//页面上抓不到标题
picture.setTitle("");
}else{
//去标题的#
Stringtitle=matcher.group(Integer.parseInt(sort[0])).replace("#","");
picture.setTitle(title);
}

//匹配出source
if(-1==Integer.parseInt(sort[1])){
//页面上抓不到图片路径
picture.setSource("");
}else{
StringwebImgUrl=matcher.group(Integer.parseInt(sort[1]));
//判断是绝对路径还是相对路径
String[]pathType=webImgUrl.split(":");
if(pathType.length>1){
//绝对路径
picture.setSource(webImgUrl);
}else{
//判断相对路径是否含有..
pathType=webImgUrl.split("\.\.");
if(pathType.length>1){
picture.setSource(httphread+pathType[1]);
}else{
if(webImgUrl.startsWith("/")){
picture.setSource(httphread+pathType[0]);
}else{
picture.setSource(httphread+"/"+pathType[0]);
}
}
}
}
StringupPath=upload(picture.getSource(),"d:\image\");
picture.setUpPath(upPath);
list.add(picture);
}//--endwhile
}

}
}catch(Exceptione){
e.printStackTrace();
}
returnlist;
}

/**
*根据网路路径获取页面源码
*@parampageUrl
*@paramencoding
*@return
*/
publicStringgetPageSource(StringpageUrl,Stringencoding){
StringBuffersb=newStringBuffer();
try{
//构建一URL对象
URLurl=newURL(pageUrl);
//使用openStream得到一输入流并由此构造一个BufferedReader对象
BufferedReaderin=newBufferedReader(newInputStreamReader(url
.openStream(),encoding));
Stringline;
//读取www资源
while((line=in.readLine())!=null){
sb.append(line);
sb.append(" ");
}
in.close();
}catch(Exceptionex){
System.err.println(ex);
}
returnsb.toString();
}

/**
*上传图片
*@paramurlStr
*@parampath
*@return
*@throwsException
*/
publicStringupload(StringurlStr,Stringpath)throwsException{
Calendarcalendar=Calendar.getInstance();
Stringmonth=calendar.get(Calendar.YEAR)+"/"
+(calendar.get(Calendar.MONTH)+1);
Stringfilename=java.util.UUID.randomUUID().toString()
+getExtension(urlStr);
path=path+month+"/";
download(urlStr,path,filename);
returnpath+month+"/"+filename;
}
/**
*根据路径下载图片然后保存到对应的目录下
*@paramurlString
*@paramfilename
*@paramsavePath
*@return
*@throwsException
*/
publicvoiddownload(StringurlString,Stringfilename,StringsavePath)throwsException{
//构造URL
URLurl=newURL(urlString);
//打开连接
URLConnectioncon=url.openConnection();
//设置请求的路径
con.setConnectTimeout(5*1000);
//输入流
InputStreamis=con.getInputStream();

//1K的数据缓冲
byte[]bs=newbyte[1024];
//读取到的数据长度
intlen;
//输出的文件流
Filesf=newFile(savePath);
if(!sf.exists()){
sf.mkdirs();
}
OutputStreamos=newFileOutputStream(sf.getPath()+"\"+filename);
//开始读取
while((len=is.read(bs))!=-1){
os.write(bs,0,len);
}
//完毕,关闭所有链接
os.close();

is.close();
}

/**
*根据文件名获取文件的后缀名
*@paramfileUrl
*@return
*/
publicStringgetExtension(StringfileUrl){
returnfileUrl.substring(fileUrl.lastIndexOf("."),fileUrl.length());
}
}

❺ 服务器端 验证上传图片 格式的 正则 (java)

用字符串判断性能比正则好,
String imgExt = "jpg|jpeg|png|bmp|GIF|JPG|PNG|JPEG";
imgExt .indexOf("图片后缀") >= 0
或者 imgExt .contains("图片后缀")
这两种就可以

阅读全文

与java正则图片相关的资料

热点内容
特种pdf 浏览:158
加油什么app划算 浏览:713
开服要什么样的服务器 浏览:33
pdf文件太大怎么压缩 浏览:29
UK开票显示文件夹不存在 浏览:668
无锡江苏大容量服务器公司云主机 浏览:503
pdf朱绍侯 浏览:227
编程猫算法求和 浏览:556
品茗监测不到加密锁 浏览:207
世界程序员收入 浏览:1000
filetypephp 浏览:726
铰刀转速进给的算法 浏览:979
php二维数组取一列 浏览:377
安装杀毒软件出现压缩或加密 浏览:975
方舟端游服务器怎么搜索房间 浏览:73
单片机学51好还是stm8好 浏览:798
手中的app如何隐藏 浏览:1001
安卓什么壁纸软件号 浏览:436
java设置内存大小 浏览:434
php循环匹配 浏览:325