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


    我的收获:

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

    代码:

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

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

  • 相关阅读:
    pyqt的setObjectName()/findChild()
    pyqt的多Button的点击事件的槽函数的区分发送signal的按钮。
    分布式存储
    QTableWidget的表头颜色设置
    QListView的子项的ViewMode
    QHeaderView的点击和双击事件
    LeetCode(63):不同路径 II
    LeetCode(62):不同路径
    LeetCode(61):旋转链表
    LeetCode(60): 第k个排列
  • 原文地址:https://www.cnblogs.com/aigeileshei/p/6163399.html
Copyright © 2020-2023  润新知