Allgemein kann man über einen Konstruktor sagen das er am Anfang erstmal einen Namen hat wie die Datei selbst.
Zweitens hat er mindestens 0 oder maximal unendliche viele Parameter in der Ausprägung (Qualifier Name) und das ganze Komma separiert. Zwischen den Abschnitten könne belieg viele leer und carriage returns sein.
Ich hab schon alles mir mögliche Versucht und nachgelesen aber ich bekomme dafür keine regex aufgestellt obwohl es eigentlich machbar sein sollte. Sind alle Paramter auf einer Zeile ist es kein Problem. Dann kann man sagen
Freihand, nicht getestet
(?<=\w+\s{0, 100}\().*(?=\))
Im Klartext, wenn du etwas findest das so aussieht "xxx (" dann nimm alle Zeichen die dahiner kommen bis zum ")" mit. Diesen String könnte man dann in einen Tokenizer stecken. Aber das ist nicht allgemein genug da .* am Zeilenende aufhört zu lesen. Wenn man das Pattern das compiliert wird auf DOTALL stellt, also über das Zeilenende hinaus kommt einem eine andere eigenschaft des * in die Quere, er ist gierig. Er liest alles bis zum letzen gefunden ) ein. Was dazu führt das man quasi die ganze Datei zurück bekommt.
Mir fällt dafür keine Lösung ein die man allgemein abhandeln könnte. Hat sonst jemand eine Idee? Ich werds nun erstmal mit einem normalen Tokenizer versuchen der sich die Konstruktoren rauspult. Eine allgemeine Lösung wäre mir aber lieber.
Zweitens hat er mindestens 0 oder maximal unendliche viele Parameter in der Ausprägung (Qualifier Name) und das ganze Komma separiert. Zwischen den Abschnitten könne belieg viele leer und carriage returns sein.
Code:
xxxx(
yyy zzz,
aaa bbb)
throws iiii
{
super(zzz, bbb);
}
Ich hab schon alles mir mögliche Versucht und nachgelesen aber ich bekomme dafür keine regex aufgestellt obwohl es eigentlich machbar sein sollte. Sind alle Paramter auf einer Zeile ist es kein Problem. Dann kann man sagen
Freihand, nicht getestet
(?<=\w+\s{0, 100}\().*(?=\))
Im Klartext, wenn du etwas findest das so aussieht "xxx (" dann nimm alle Zeichen die dahiner kommen bis zum ")" mit. Diesen String könnte man dann in einen Tokenizer stecken. Aber das ist nicht allgemein genug da .* am Zeilenende aufhört zu lesen. Wenn man das Pattern das compiliert wird auf DOTALL stellt, also über das Zeilenende hinaus kommt einem eine andere eigenschaft des * in die Quere, er ist gierig. Er liest alles bis zum letzen gefunden ) ein. Was dazu führt das man quasi die ganze Datei zurück bekommt.
Mir fällt dafür keine Lösung ein die man allgemein abhandeln könnte. Hat sonst jemand eine Idee? Ich werds nun erstmal mit einem normalen Tokenizer versuchen der sich die Konstruktoren rauspult. Eine allgemeine Lösung wäre mir aber lieber.