所以这是我的问题。我需要浏览一段很长的 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);
}
}
}
上面的一些代码并不完全正确,但应该给出了大致的思路。