java怎样用正则表达式匹配文档注释,如“/**@date 2012-1-2*/”?

现在想做个把文件的文档注释删除的东西?不知道java怎样用正则表达式来匹配,请各位帮忙

写了个例子,你可以参照下
[code="java"]
package iteyeQuestions;

/*

  • java怎样用正则表达式匹配文档注释,如“斜杠**@date 2012-1-2*斜杠”?
  • 现在想做个把文件的文档注释删除的东西?不知道java怎样用正则表达式来匹配,请各位帮忙 */

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;

public class RidNotation {

//待处理代码文档输入流
private BufferedReader br;
//待处理代码文档输出流
private PrintWriter pw;

//构造方法
public RidNotation(String inputUrl,String outputUrl) throws IOException{
    this.br= new BufferedReader(new FileReader(new File(inputUrl)));
    this.pw= new PrintWriter(new BufferedWriter(new FileWriter(outputUrl)));;
}

//去文档型注册的方法
public void ridDocType() throws IOException{
    String temp=null;
    boolean isNotation=false;
    while (this.br.ready()) {
        temp=this.br.readLine();
        int start=0;
        int end=0;
        if(isNotation){
            if((end=temp.indexOf("*/"))==-1){
                continue;
            }else{//找到注释结束标志
                int anotherStart=0;
                if((anotherStart=temp.substring(end).indexOf("/**"))==-1){
                    isNotation=false;//此后为代码段
                    this.pw.println(temp.substring(end+2));//把本行剩余的代码输出
                }else{//又在本行内找到另一个开始标志,输出中间代码
                    this.pw.println(temp.substring(end+2,anotherStart));
                }
            }
        }else{
            if((start=temp.indexOf("/**"))==-1){
                this.pw.println(temp);
            }else{//找到注释开始标志
                if((end=temp.substring(start).indexOf("*/"))==-1){
                    isNotation=true;//此后为注释段
                    this.pw.println(temp.substring(0,start));
                }else{//此行内同时含有注释结尾标志
                    this.pw.println(temp.substring(0,start)+temp.substring(end+2));
                }
            }
        }
    }
    this.br.close();
    this.pw.close();
}
/**
 * @param args
 * @throws IOException 
 */
public static void main(String[] args) throws IOException {
    //测试代码
    new RidNotation("RidNotation.java","outttt.txt").ridDocType();
}

}
[/code]

两大类:
1、以“//”开始的行
2、以"/*" 和 "*/"包围的块儿

个人建议不要用正则表达式,效率低下。
你这个情况的匹配是很简单的,挨个匹配即可。

你要的是,仅仅去文档型注释嘛?

代码中的字符串含有注释块的话,这个例子会误去。可以对付一般的代码

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