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


    我的收获:

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

    代码:

    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)*?*/[^'"]

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

  • 相关阅读:
    `cd -`
    .git文件夹过大的解决方法
    避免对函数参数的修改
    2020年10月 修改Ant Design Pro底部版权信息的方法
    度目-人脸应用套件 文档中的坑
    "A little like that j-thing"
    Linux安装MySQL后设置密码
    append对len和cap的影响
    s := []int{0, 1, 2, 3, 8: 100}
    Python学习笔记
  • 原文地址:https://www.cnblogs.com/aigeileshei/p/6163399.html
Copyright © 2020-2023  润新知