Я пытаюсь написать регулярное выражение java, чтобы удалить всю аннотацию из моего кода, у меня есть довольно сложная аннотация, которые являются вложенными, и до сих пор я мог только соответствовать по внутренним аннотациям, здесь является Exemple моих аннотацийjava regex для соответствия многострочной вложенной аннотации
@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), хотя кривая обучения может быть крутой. Вы можете найти готовую грамматику для Java-языка по адресу https://github.com/antlr/grammars-v4/blob/master/java/Java.g4 – Gowtham