2011-07-12 88 views
1

我想解析不包含有关类的描述的.java文件。用Javadoc识别java文件

我想它用Perl做,但没能得到approprate正则表达式解析以下模式

/** 
* Some text describing about the class 
* 
*/ 

例如:

Class CommunicationServer { 
... 
} 

类的描述丢失。 perl中可以使用哪些regexp来解析这种类型的模式?

这里是我的尝试,但它不工作

while (valid file handle) { 
    my $isLine = $_; 
    chomp($isLine); 
    if ($isLine =~ m/^(\/\*\\*)/) { 
     #if ($isLine =~ /[^\W]/) { # Any non-word character. 
     print $isLine ".\n"; 
    } 
} 

或者是你知道的任何工具,它帮助我识别非文档类,如上面的?

非常感谢您的输入。

+4

你为什么要尝试在Perl中使用checkstyle而不是(比如说)使用checkstyle? http://checkstyle.sourceforge.net/config_javadoc.html –

+0

你是否知道'..'和'...'操作符? –

+0

目标是列出所有没有文档的Java类。因此,通过perl脚本遍历包,打开文件并尝试解析注释。 checkstlye到位后,我必须打开每个Java文件并检查。有超过1k类。 – Sanjeev

回答

1

(/\\*\\*.*?\\*/[^;]*?class[^{]*)\\{

这个东西可以捕捉从文件一个javadoc一个类定义。如果你没有使用javadoc嵌套类并且不想检查它们,你可以使用它。如果这个正则表达式失败,那么你的文件没有javadoc类。

确保您的\s.吃换行符。

这可能并不总是奏效。没有太多的测试。评论和我会回答。