我目前正在尝试在 Checkstyle 中创建自己的支票。它应该对类中的注释代码发出警告。
现在,就注释的识别而言,我已经弄清楚了,但现在我面临如何让它识别Java代码的问题。
是否已经有任何集合提供了这些功能?在某些情况下,仅检查某些关键字(如修饰符、类型、范围等)会过于模糊。
tl;dr:寻找一种方法来找出一个字符串是否是 java 代码(模式匹配)
我目前正在尝试在 Checkstyle 中创建自己的支票。它应该对类中的注释代码发出警告。
现在,就注释的识别而言,我已经弄清楚了,但现在我面临如何让它识别Java代码的问题。
是否已经有任何集合提供了这些功能?在某些情况下,仅检查某些关键字(如修饰符、类型、范围等)会过于模糊。
tl;dr:寻找一种方法来找出一个字符串是否是 java 代码(模式匹配)
确定大块注释代码的一种很好的启发式方法是检查前面的空格。“有效”注释通常会与实际代码缩进:
public class A {
public void a() {
// valid comment
...
}
}
而使用 ctrl-7 注释的代码块将直接以 // 字符开头:
public class A {
// public void a() {
// // valid comment
// ...
// }
}
因此,您的正则表达式看起来像这样
^//.*
很难确定一行是否是 Java 代码,因为一行可能只有一个}
. 也就是说,如果您想检查 FILE 是否为 java,则有一些不错的 Regex 选项适合您,主要是因为您可以查看某行的上下文。即使您使用它们,您也可以制作一个特定的文件,该文件将被检测为好像它是 Java,而实际上并非如此。也就是说,它适用于大多数(如果不是全部)“正常”文件。
如果您正在寻找正则表达式,您可能想在 StackOverflow 上寻找类似的威胁,因为周围应该有一些(我前一段时间自己使用了一个)。但是,如果您真的想在 Checkstyle 中执行此操作,则可能不走运……