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

标签 java parsing

<分区>

所以这是我的问题。我需要浏览一段很长的 Java 代码并找到带有特定单词或语句的注释。如果存在,我需要将以下代码的一部分复制到文本文件中。例如。如果这个词是“猫”

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

我需要输出文本文件在注释后的第一个字符串中包含单词“cat”,因此此处为“abcd”。我想我可以将整个代码解析为文本文件并查找注释,但是有没有更快更智能的方法?

编辑: 我尝试执行 grep 但它不起作用,因为 String 的第一次出现是在可变距离处,并且增加要获取的行数有时也会包括下一条评论。

最佳答案

最大的问题是,要 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);
        }
    }
}

上面的一些代码并不完全正确,但应该给出了大致的思路。

关于java - 解析 java 源代码以查找注释中的特定单词,然后使用下面的代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17180612/

相关文章:

java - 如何使用 Jsoup 将数据发送到 ajax 函数

java - parseLong 方法在 Java 中如何工作?

java - Hibernate/persistence 有哪些常见问题?

java - Spring MVC 模型属性不显示

java - 编写简单的控制台聊天程序

json - 是否可以使用 JSONDecoder 解码附加参数?

python - 使用 Python 在运行文本中拆分单词?

java - 自定义配置文件 - Play !框架2.0

java - Android如何获取JSONObject中的int类型

XML的Java DOM解析-无法从子节点获取属性