2013-10-31 70 views
0

我目前正在尝试在Checkstyle中创建自己的检查。 它应该在课堂上为注释代码发出警告。与Java语法匹配的模式(Checkstyle)

现在,就评论意见的认可而言,我明白了这一切,但现在我面临着如何使其识别Java代码的问题。

是否有任何已提供这些功能的集合?只是检查某些关键字,如修饰符,类型,范围等,在某些情况下会过于模糊。

TL;博士:寻找一种方式来找出一个字符串是否是java代码或没有(模式匹配)

回答

0

这将是非常难以确定是否行是Java代码或不作为线可以少至单个}。也就是说,如果你想检查一个FILE是否是java,那么对你来说有一些很好的Regex选项,主要是因为你可以查看某一行的上下文。 即使你使用那些你可以制作一个特定的文件,它会被检测到,如果它是Java,但实际上并不是这样。也就是说,如果不是所有的“普通”文件,它都可以工作。

如果正则表达式是你正在寻找的,你可能想在StackOverflow上寻找类似的威胁,因为应该有一些(我前一段时间使用过一个)。然而,如果你真的想在Checkstyle中做到这一点,你可能会走运...

0

一个很好的启发式方法来确定大块评论代码是检查前面的空格。一个“有效”的评论通常与实际的代码缩进:

public class A { 

    public void a() { 
     // valid comment 
     ... 
    } 

} 

尽管已经评论与CTRL-7的码块将直接与//字符开始:

public class A { 

// public void a() { 
//  // valid comment 
//  ... 
// } 

} 

因此,你的正则表达式看起来像这样

^//.*