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

parsing java source code to find particular words in comments and then use the code that follows

本问题已经有最佳答案,请猛点这里访问。

所以这是我的问题。 我需要经历一个很长的java代码,并找到具有特定单词或语句的注释。 如果它存在,我需要将以下代码的一部分复制到文本文件中。 例如。 如果这个词是"猫"

1
2
3
4
5
     /**
      *this code is related to the cat
      */

      public static int a = 5;
      public static String b ="abcd";

我需要输出文本文件在注释后面加上第一个字符串"cat",所以这里它将是"abcd"。 我想我可以将整个代码解析为文本文件并查找注释但是有更快更聪明的方法吗?

编辑:
我尝试做一个grep并且它不起作用,因为String的第一次出现是可变距离并且增加行数有时也包括下一个注释。


最大的问题是,要正确地执行100%正确的问题,您需要编写/使用Java语法的解析器,以确保您获得了预期的结果。

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

1
2
3
4
5
6
7
8
9
10
11
12
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);
        }
    }
}

上面的一些代码并不完全正确,但应该给出粗略的想法。