解析Java源代码以查找注释中的特定单词,然后使用后面的代码



这就是我的问题。我需要浏览相当长的java代码,并找到带有特定单词或语句的注释。如果它存在,我需要将以下代码的一部分复制到文本文件中。如。如果单词是"cat"

     /** 
      *this code is related to the cat 
      */
      public static int a = 5;
      public static String b = "abcd";

我需要输出的文本文件有第一个字符串后的评论与单词"猫",所以这里它将是"abcd"。我想我可以解析整个代码作为一个文本文件,并寻找注释,但是否有一个更快,更智能的方式?

编辑:我试着做grep,它不工作,因为字符串的第一次出现是在可变距离,增加行数有时也包括下一个注释。

最大的问题是,要做到你要求的100%正确,你需要编写/使用Java语法解析器,以确保你得到你想要的。

一个选项是遍历文件内容,并在扫描注释和扫描字符串之间切换状态。例如:

Pattern stringPattern = Pattern.compile("String [^=]*= \"([^\"]*)\"");
boolean searchComment = true;
for (String line:fileLines) {
    if(searchComment) {
        searchComment = !line.contains(statement);
    } else {
        Matcher m = stringPattern.matcher(line);
        if (m.matches()) {
            String value = m.group(1);
        }
    }
}

上面的一些代码并不完全正确,但应该给一个大致的概念。

相关内容

最新更新