Hallo,
ich verzeifel ein wenig an einem regulären Ausdruck in Java.
Er soll folgendes machen:
- Eingabe ein String, in dem Java-Quellcode enthalten ist.
- Ausgabe ein String, in dem IF-ELSE IF - ELSE-Konstrukte entfernt werden, wobei der letzte ELSE-Teil optional sein soll.
Mein momentaner regulärer Ausdruck ist der folgende:
Code:
\\sif\\s*\\(.*\\)\\s*\\{.*\\}(\\s*else\\s*if\\s*\\(.*\\)\\s*\\{.*?\\})+(\\s*else\\*\\{.*?\\}){0,1}
Damit habe ich nun mehrere Probleme:
1. wird ein ausdruck der form
Code:
if (bedingung)
return 1;
else if (bedingung 2)
return 2;
(also ohne {} da nur 1 zeilig) nicht erkannt.
2. Anweisungen nach dem letzten else if verschwinden, d.h.:
Code:
public static int hallo(Integer n) {"
+ "\nif(n==0) {n return 5;} else if ( n == 9 ) {return 500;} while () { }}
wird zu: public static int hallo(Integer n) {}
Würde mich über eine Idee wirklich sehr freuen
Liebe Grüße,
Dante