0

我目前正在尝试在 Checkstyle 中创建自己的支票。它应该对类中的注释代码发出警告。

现在,就注释的识别而言,我已经弄清楚了,但现在我面临如何让它识别Java代码的问题。

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

tl;dr:寻找一种方法来找出一个字符串是否是 java 代码(模式匹配)

4

2 回答 2

0

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

public class A {

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

}

而使用 ctrl-7 注释的代码块将直接以 // 字符开头:

public class A {

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

}

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

^//.*
于 2013-10-31T08:51:35.567 回答
0

很难确定一行是否是 Java 代码,因为一行可能只有一个}. 也就是说,如果您想检查 FILE 是否为 java,则有一些不错的 Regex 选项适合您,主要是因为您可以查看某行的上下文。即使您使用它们,您也可以制作一个特定的文件,该文件将被检测为好像它是 Java,而实际上并非如此。也就是说,它适用于大多数(如果不是全部)“正常”文件。

如果您正在寻找正则表达式,您可能想在 StackOverflow 上寻找类似的威胁,因为周围应该有一些(我前一段时间自己使用了一个)。但是,如果您真的想在 Checkstyle 中执行此操作,则可能不走运……

于 2013-10-31T08:44:30.903 回答