❶ java,将java文件中的单行和多行注释内容替换为空,正则表达式如何实现!
我们知道java中有三种注释方式
1. // 单行
2. /* .......*/ 单行 或多行
3. /** .......*/ 单行 或多行
我们的目的就是把以上三种特征的注释替换
以下是例子
String s = “。。。。。。。。”; // 将文件的内容赋值给s
Pattern pattern1 = Pattern.compile("//(.*)"); //特征是所有以双斜线开头的
Matcher matcher1 = pattern1.matcher(s);
s = matcher1.replaceAll(""); //替换第一种注释
Pattern pattern2 = Pattern.compile("/\\*(.*?)\\*/", Pattern.DOTALL); //特征是以/*开始,以*/结尾,Pattern.DOTALL的意思是糊涂模式,这种模式下.(点号)匹配所有字符
Matcher matcher2 = pattern2.matcher(s);
s = matcher2.replaceAll(""); //替换第二种注释
Pattern pattern3 = Pattern.compile("/\\*\\*(.*?)\\*/", Pattern.DOTALL); //特征是以/**开始,以*/结尾
Matcher matcher3 = pattern3.matcher(s);
s = matcher3.replaceAll(""); //替换第三种注释
System.out.println(s); //打印结果
❷ 请问java字符串处理的正则表达式中,要怎么匹配//...和/*...*/(也就是匹配java注释) 谢谢!
下面是关于java的正则处理原理和上面的基本一样,我觉得如果真的匹配java代码里面的注释这个还不够还需要很多的条件因为有可能你的代码里面本身就有相关字符的处理.所以我认为需要根据你具体的情景进行正则设计
Patternp=Pattern.compile("//.*");
str="//0000";
m =p.matcher(str);
System.out.println(m.matches());
p=Pattern.compile("/\\*.*\\*/");
str="/*999*/";
m =p.matcher(str);
System.out.println(m.matches());