使用正则表达式匹配进行文件类名的更改并且去除注释

我的收获:

写正则的时候先找个正则匹配工具测试。

代码:

package com.allcheer.acl.omc.util.tool;

import org.apache.commons.io.IOUtils;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileReader;
import java.io.FileWriter;

/**
 * Created by Administrator on 2016/12/12.
 * 将DO变成Model且去除注释
 */
public class Do2ModelNoDoc {

    public static File transFile(File src){
        String targetFileName;
        String contentString;
        String name=src.getName();
        targetFileName=name.replace("DO.","Model.");
        File target=new File(src.getParentFile(),targetFileName);
        FileReader fis=null;
        FileWriter fw=null;
        try {
            target.createNewFile();
            fw=new FileWriter(target);
            contentString=IOUtils.toString(new FileInputStream(src));
            contentString=contentString.replaceAll("/\\*(.|\\s)*?\\*/","");
            contentString=contentString.replace(src.getName().replace(".java",""),targetFileName.replace(".java",""));
            fw.write(contentString);
            fw.flush();
        }catch (Exception e){
            e.printStackTrace();
        }finally{
            try{
                if(fis!=null) fis.close();
                if(fw!=null) fw.close();
            }catch(Exception e){
                e.printStackTrace();
            }

        }
        return target;
    }


}

 

代码存在bug,就是如果System.out.println("/** uugfgug **/");会被匹配

我想的更改成的正则:[^'"]/\*(.|\s)*?\*/[^'"]

但是有问题,没时间,上班,希望会的帮忙写个正确的正确

posted @ 2016-12-12 10:11  guodaxia  阅读(327)  评论(0编辑  收藏  举报