0
我想写一个java正则表达式从我的代码中删除所有注释,我有一些非常复杂的嵌套注释,因此我只能匹配内部注释,这里是我的注解用于匹配多行嵌套注释的java正则表达式
@annotationA(property1 = "",
property2 = "",
property3 = "",
property4 = "",
property5 = "")
public class ClassA {
@annotationB(property1 = @annotationA(property5 = "anyChar",
property6 = false,
property1 = "anyChar",
property2 = "anyChar",
property3 = "anyChar",
property4 = "anyChar"),
params = { @annotationC(property7 = @annotationA(property5 = "anyChar"), property8 = @annotationA(property5 = "anyChar")),
@annotationC(property7 = @annotationA(property5 = "anyChar"), property8 = @annotationA(property5 = "anyChar")),
@annotationC(property7 = @annotationA(property5 = "anyChar"), property8 = @annotationA(property5 = "anyChar")),
@annotationC(property7 = @annotationA(property5 = "anyChar"), property8 = @annotationA(property5 = "anyChar")),
@annotationC(property7 = @annotationA(property5 = "anyChar"), property8 = @annotationA(property5 = "anyChar")),
@annotationC(property7 = @annotationA(property5 = "anyChar"), property8 = @annotationA(property5 = "anyChar")),
@annotationC(property7 = @annotationA(property5 = "anyChar"), property8 = @annotationA(property5 = "anyChar")),
@annotationC(property7 = @annotationA(property5 = "anyChar"), property8 = @annotationA(property5 = "anyChar")),
@annotationC(property7 = @annotationA(property5 = "anyChar"), property8 = @annotationA(property5 = "anyChar")), },
returnType = @annotationA(property5 = "anyChar"))
//some methode
}
这里的为例是我正则表达式(不转义):
@\w+\([\n\w\s=\-"\@,.*:// {\+ }\.;+]+\)
正则表达式不是解析java语言的正确工具。您可以考虑使用像[antlr](http://www.antlr.org)这样的解析器生成器,尽管学习曲线可能很陡峭。您可以在https://github.com/antlr/grammars-v4/blob/master/java/Java.g4找到Java语言的现成语法 – Gowtham