Regex выделение классов | методов яп Java
Есть класс яп Java. Хочу с помощью regex грепать классы | методы из файлов .java.
public class Dog {
private String name;
private int age;
protected int lol;
public Dog(String name, int age) {
this.name = name;
this.age = age;
}
public Dog(String name) {
this.name = name;
this.age = -1;
}
public void setName(String name) {
this.name = name;
}
public void setAge(int age) {
this.age = age;
}
public String getName() {
return this.name;
}
public int getAge() {
return this.age;
}
public int humanAge() {
return this.age > 0 ? this.age * 7 : -1;
}
public String toString() {
return String.format("Name: %s | Age: %d", this.name, this.age);
}
}
Начал писать что-то подобное, но пока не понимаю как грепнуть весь класс вместе с телом.
(public )?class [A-Za-z0-9]+ {([.*?s]+)
Пытался с флагом re.MULTILINE, но тщетно.
Ответы (1 шт):
Автор решения: icYFTL
→ Ссылка
Спасибо @VictorVosMottor . С его помощью представляю финальный ответ:
(((|public|final|abstract|private|static|protected)(\s+))?(class)(\s+)(\w+)(<.*>)?(\s+extends\s+\w+)?(<.*>)?(\s+implements\s+)?(.*)?(<.*>)?(\s*))\{$(\s.*)+\}
Или конкретнее: https://regex101.com/r/YPcJRh/1/