❶ 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());