Mit regulärem Ausdruck Methoden auskommentieren?

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
KoenigGunther
User
Beiträge: 22
Registriert: Donnerstag 19. April 2007, 10:05

Hi!
Ich suche nach einem regulären Ausdruck der mir eine Methode auskommentiert.
Die Methode soll die main-Methode einer Javadatei sein:

Ich dachte da an etwas wie:

Code: Alles auswählen

re.sub('public\s+static\s+void\s+main\(.*\)
um den Kopf zu erkennen

Code: Alles auswählen

\{(.*\{.*\}.*)*\}
um den Rumpf zu erkennen.

Das Problem scheint zu sein, da ich eine Datei einlese in der Absätze sind, diese nicht gematcht werden. Ich habs schon mit re.DOTALL versucht, aber dann matcht er zu viel. Ich dachte mit dem (.*\{.*\}.*)* könnte ich sicherstellen, dass ich, wenn ich eine öffnende geschweifte Klammer lese auch immer die schließende dazu lese.

Prinzipiell läuft das Problem auf das Merken von Klammerpaaren hinaus - kann mir da wer helfen?

Christian
Benutzeravatar
HWK
User
Beiträge: 1295
Registriert: Mittwoch 7. Juni 2006, 20:44

Wenn die geschweiften Klammern beliebig tief geschachtelt sein dürfen, ist es mit einer Regex nicht zu lösen.
Zitat aus Mastering Regular Expressions von Jeffrey E.F. Friedl:
In fact, the problem is that you simply can't match arbitrarily
nested constructs with regular expressions. It just can't be done.
MfG
HWK
KoenigGunther
User
Beiträge: 22
Registriert: Donnerstag 19. April 2007, 10:05

Danke sehr!
Auch wenn es nicht gut für mich ist :)
Antworten