用于匹配javadoc片段的正则表达式

这个问题让我在正则表达式中思考匹配包含一些指定文本的javadoc注释。

例如,查找包含@deprecated的所有javadoc片段:

 /** * Method1 * ..... * @deprecated * @return */ 

我设法得到表达式/\*\*.*?@deprecated.*?\*/但在某些情况下失败,例如:

 /** * Method1 * ..... * @return */ public int Method1() { } // this method should be @deprecated public void Method2() { } /** * Method3 * ..... * @return */ public int Method3() { } 

它匹配第一个javadoc片段中的所有代码,直到第三个javadoc片段。

有人能给这个正则表达式吗?

试试这个:

 /\*\*([^\*]|\*(?!/))*?@deprecated.*?\*/ 

method2()没有javadoc注释,因此没有弃用(尽管注释说明它应该是)。

另外,如果你想从javadoc注释中提取信息,我建议你查看javadoc工具并编写一个Doclet 。 您可以从那里轻松访问javadoc评论中的所有信息。