Oak*_*Oak 2 java regex parsing
我的目标是找到一个Java源文件的包(作为字符串),以纯文本形式给出,但尚未在文件夹中排序.
我不能只package在文件中找到关键字的第一个实例,因为它可能出现在注释中.所以我在考虑两种选择:
package遇到关键字而不在评论中时,停止扫描并报告结果.这两种方法的另一个区别是,当我手动扫描时,我可以停止扫描,因为我可以确定package关键字不再出现,节省了一些时间......而且我不确定我是否可以使用正则表达式做类似的事情.另一方面,"当它不再出现时"的决定并不一定简单,尽管我可以使用一些启发式方法.
我想听听有关此问题的任何意见,欢迎任何有关正则表达式的帮助.我的解决方案也是用Java编写的.
编辑:对那些建议实际解析文件的人来说 - 这绝对是一个可行的选择,谢谢你,但是我觉得解析整个文件只是一个包太过分了.如果没有更简单的选择,我会这样做.
我通过使用java解析器解决了这个问题.为了我的目的,javaparser是最合适的.
CompilationUnit cu = JavaParser.parse( file );
String packageName = cu.getPackage().getName().toString();
Run Code Online (Sandbox Code Playgroud)