首页 > 编程语言 >正则非贪婪 (清除java类三种注释)

正则非贪婪 (清除java类三种注释)

时间:2023-08-03 20:03:44浏览次数:32  
标签:file java String read 注释 正则 贪婪 FileUtils

最大匹配(默认):

 

 

最小匹配(加一个问号):

 

 

 

匹配 // 注释:

[\t  ]*//.*[^\r\n]

匹配 /** */ doc注释和/* */ 块注释():

[\t  ]*/\*[\s\S]*?\*/

 

验证:

/*
 * Copyright (c) 1994, 2013, Oracle and/or its affiliates. All rights reserved.

 */
package zz;

/**
 * @author witas
 *
 */
public class Woo {

    // sdfsdf
    // xcvxcv
    // ghfghfgh
    /**
     * @param args
     */
    public static void main(String[] args) {
        String s = "//sdfsdf";
        String s2 = "/** */";
    }
    
    /* sdfsdfsdf */
    
    
}

 

    public static void cleanComment(File base) {
        File[] search = FileUtils.search("*.java", base);
        for (File file : search) {
            String read = FileUtils.read(file, Charset.forName("utf-8"));
            read = read.replaceAll("\\r\\n[\\t  ]*//.*[^\\r\\n]", "\r\n").replaceFirst("^[\\t  ]*//.*[^\\r\\n]", "");
            read = read.replaceAll("\\r\\n[\\t  ]*/\\*[\\s\\S]*?\\*/", "\r\n").replaceFirst("^[\\t  ]*/\\*[\\s\\S]*?\\*/", "");
            FileUtils.write(read, file, Charset.forName("utf-8"));
        }
    }

备注:替换非第一行和第一行

标签:file,java,String,read,注释,正则,贪婪,FileUtils
From: https://www.cnblogs.com/zno2/p/17160627.html

相关文章

  • java基础下(笔记)
    面向对象编程 本质:以类的方式组织代码,以对象来组织(封装)数据面向对象:分类的思维模式,首先思考解决问题需要哪些分类,然后对这些分类进行单独思考。面向过程:步骤清晰简单,每一步都清清楚楚。类和对象从认识论角度思考是先有对象后有类,对象是具体事物,类是对具体事物的抽......
  • kube 小工具 java log
     importjava.io.BufferedInputStream;importjava.io.BufferedReader;importjava.io.IOException;importjava.io.InputStream;importjava.io.StringReader;importjava.util.ArrayList;importjava.util.LinkedHashMap;importjava.util.List;importjava.util.......
  • JAVA系列之JVM内存调优
    文章目录一、前提二、JVM内存结构1、栈内存2、堆内存3、永久代(元空间)三、JVM常用参数1、堆大小设置2、垃圾回收器选择2.1吞吐量优先的并行收集器2.2响应时间优先的并发收集器3、其他辅助配置四、内存溢出排查1、元空间溢出(java.lang.OutOfMemoryError:Metaspace)2、栈深度不够(ja......
  • JAVA系列之类加载机制详解
    文章目录一、类加载过程二、类生命周期1、加载2、验证3、准备4、解析5、初始化三、双亲委派机制四、自定义类加载器的应用1、源代码加密2、隔离加载类3、热加载/热部署4、扩展加载源类的加载机制?双亲委派机制?什么是类加载器?自定义类加载器有哪些应用场景?通常,在关于Java的......
  • JAVA系列之内存模型(JMM)
    文章目录一、简介二、硬件内存模型1、高速缓存和缓存一致性2、CPU三级缓存3、缓存一致性4、Java线程与CPU5、指令重排序三、Java内存模型1、Java内存模型概念2、Java内存模型与硬件内存模型之间的关系3、Java内存模型作用4、Java内存模型的同步操作与规则5、Java内存模型三大特性5......
  • java 同一个对象之间赋值后添加入List中,属性值相互覆盖的问题解决方案
    1、for循环中NEW对象,因为List中存的是对象的引用地址。2、BeanUtils是属于spring框架下beans包下的工具类BeanUtils它提供了对java反射和自省API的包装。它里面还有很多工具类,这篇文章我们介绍一下copyProperties这个方法使用情景一般当我们有两个具有很多相同属性的JavaBean......
  • java输出字符和数字
    1、用java如何输出一个字符串中的所有数字?2、使用java语言编写程序,统计从控制台输入的一行字符串中数字个数、字母...3、java中怎么将字符串中的数字取出来4、JAVA怎样快速把字符串里面的数字取出来用java如何输出一个字符串中的所有数字?数字的ascii码是48-57共10个。......
  • 《深入理解Java虚拟机》读书笔记:Java内存区域
    Java内存区域包含程序计数器、虚拟机栈、本地方法栈、Java堆、方法区五个区域。运行时数据区分类 Java内存区域 一、程序计数器程序计数器(ProgramCounterRegister)是一块较小的内存空间,它可以看作是当前线程所执行的字节码的信号指示器。字节码解释器工作时就是通过......
  • 三个实例演示 Java Thread Dump 日志分析
    jstackDump日志文件中的线程状态dump文件里,值得关注的线程状态有:死锁,Deadlock(重点关注) 执行中,Runnable  等待资源,Waitingoncondition(重点关注) Waitingonmonitorentry(重点关注)暂停,Suspended对象等待中,Object.wait()或TIMED_WAITING阻塞,Blocked(重点关注)......
  • java爱心代码,脱单必备
    packagecom.example.test;importjava.awt.Color;importjava.awt.Font;importjava.awt.Graphics;importjava.awt.Image;importjava.awt.Toolkit;importjava.util.jar.JarOutputStream;importjavax.swing.JFrame;classCardioidextendsJFrame{//定义窗口大小privatestat......