java正则表达式可用在replaceAll里

2014-11-24 01:40:17 · 作者: · 浏览: 0

写道
str="/* */ package cn.ehoo.dao;";
System.out.println(str.replaceAll("/\\*.+\\*/", "");
意思是把 str 里的/* */用空格给替换掉。
结果就是 package cn.ehoo.dao; 而不会再有 /* */


另一个方法是用到java提供的两个类,一个是Matcher,一个是Pattern。

Java代码
File path = new File("d:\\DAOSupport.java");
FileInputStream fis = new FileInputStream(path);
byte[] b = new byte[(int) path.length()];
int len = fis.read(b);
String str = new String(b, 0, len, "UTF-8");


str="/* */ package cn.ehoo.dao;";


// System.out.println(str.replaceAll("/\\*.+\\*/", ""));

Pattern pattern = Pattern.compile("/\\*.+\\*/");//用指定的正则表达式进行预编译
Matcher matcher = pattern.matcher(str);//创建匹配给定输入与此模式的匹配器。
StringBuffer sbf = new StringBuffer();
while (matcher.find()) {//描输入序列以查找与该模式匹配的下一个子序列。
//System.out.println(sbf.toString());
matcher.appendReplacement(sbf, "");//
}
matcher.appendTail(sbf);
System.out.println(sbf.toString());