JSP用正则表达式删除新闻内容中嵌入的图片信息

来源:互联网 发布:amd游戏优化软件 编辑:程序博客网 时间:2024/06/06 19:15

    在新闻管理系统中,通常删除一条新闻信息时,上传到后台指定目录中的图片难以删除。本文采在删除新闻内容时,用正则表达式在新闻内容信息中检测图片标记,并从中提取图片文件所在的路径,建立File文件对象进行删除。从而实现在删除新闻内容时删除相应的图片信息。

package newsMag;import java.util.regex.*; import java.util.*; import java.io.*; public  class DelImg{ public static int delImagesFile(String path,String description) {         // img 的正则表达式:匹配<img>标签               String imgPattern = "<\\s*img\\s+([^>]+)\\s*>";        Pattern pattern1 = Pattern.compile(imgPattern, Pattern.CASE_INSENSITIVE);        Matcher matcher = pattern1.matcher(description);         // img src元素的正则表达式:匹配img标签内的src属性        String srcPattern = "\\s*src\\s*=\\s*\"([^\"]+)\\s*\"";        Pattern pattern2 = Pattern.compile(srcPattern, Pattern.CASE_INSENSITIVE);         File f2;//存放删除文件;        int counter=0;//计数删除文件数        while (matcher.find()) {                   //group()返回符合表达式的内容            Matcher matcher2 = pattern2 .matcher(matcher.group());            // 一定要find(),这是实际的匹配动作            if (matcher2.find()) {                String src = matcher2.group();                String str;               // System.out.println("shi"+src);                int i2 = src.lastIndexOf('/');                int i1 = src.indexOf("http");                if (i1 == -1) {                str=src.substring(src.indexOf("attached"), src.lastIndexOf('"'));         f2=new File(path+str);        //out.print(path+images.get(i));        //out.print(f2.getAbsolutePath());        if(f2.isFile()) {        f2.delete();        counter++;        }                }              }        }        return counter;}       public static void main(String[] args) throws Exception {         // 生成一个Pattern,同时编译一个正则表达式         Pattern p = Pattern.compile("[/]+");         //用Pattern的split()方法把字符串按"/"分割         String[] result = p.split( "Kevin has seen《LEON》seveal times,because it is a good film." +"/ 凯文已经看过《这个杀手不太冷》几次了,因为它是一部" +"好电影。/名词:凯文。");         for (int i=0; i<result.length; i++) System.out.println(result[i]);             String shtmlText="<img border=\"0\" alt=\"\" src=\"/3ds/attached/20110421/20110421141931_455.jpg\" /> cvgdfhc<img border=\"0\" alt=\"\" src=\"/3ds/attached/20110421/20110421125853_106.jpg\" /> fghfg<img border=\"0\" alt=\"\" src=\"/3ds/attached/20110421/20110421125853_106.jpg\" /> ";    DelImg.delImagesFile("./",shtmlText);              } } 

原创粉丝点击