提取Java条评论正文(不带//、/*、*/)
Extract Java comment body (without //, /*, */)
我用的是eclipse java jdt解析器,它好像缺少以下功能:提取注释体。
以下代码:
class CommentBodyExtractor extends ASTVisitor {
@Override public boolean visit(BlockComment node) {
final int start = node.getStartPosition();
final int end = start + node.getLength();
final String comment = source.substring(start, end);
System.out.println(comment);
return false;
}
}
当 运行 出现以下代码时:
/*
* comment_body
*/
return 是完整的注释代码,而我正在寻找的是 return 只是 comment_body
的代码。
我可以进行简单的字符串操作,例如从字符串的开头删除 /*
,从结尾删除 */
,从行首删除 *
。但是我想使用更优雅的方式(一些图书馆?),你知道吗?
解析器需要明确定义的规则才能处理输入文本。 JLS 没有为 /*
和 */
之间的文本定义任何结构,因此解析器不能做太多事情。
如果您想以编程方式对注释进行操作,您可能应该使用 javadoc 注释,JDT 解析器从中创建结构化 Javadoc
元素,该元素反映语义内容而不是原始文本。
我用的是eclipse java jdt解析器,它好像缺少以下功能:提取注释体。
以下代码:
class CommentBodyExtractor extends ASTVisitor {
@Override public boolean visit(BlockComment node) {
final int start = node.getStartPosition();
final int end = start + node.getLength();
final String comment = source.substring(start, end);
System.out.println(comment);
return false;
}
}
当 运行 出现以下代码时:
/*
* comment_body
*/
return 是完整的注释代码,而我正在寻找的是 return 只是 comment_body
的代码。
我可以进行简单的字符串操作,例如从字符串的开头删除 /*
,从结尾删除 */
,从行首删除 *
。但是我想使用更优雅的方式(一些图书馆?),你知道吗?
解析器需要明确定义的规则才能处理输入文本。 JLS 没有为 /*
和 */
之间的文本定义任何结构,因此解析器不能做太多事情。
如果您想以编程方式对注释进行操作,您可能应该使用 javadoc 注释,JDT 解析器从中创建结构化 Javadoc
元素,该元素反映语义内容而不是原始文本。