Hallo zusammen
Ich habe grössere Probleme bei einem Regex von mir.
Ich möchte eine Header-Datei mit Java für C soweit vorbereiten, dass keine Funktionen mehr vorhanden sind.
Die Funktionen sehen bspw. so aus:
Dazu habe ich folgendes Regex entwickelt, das mir auch teilweise hilft, die Fkt. zu entfernen:
Dieser Teil (.*?) sollte eigentlich die ganzen Argumente repräsentieren, macht das aber nicht über Zeilengrenzen hinaus. So bleiben am Schluss alle mehrzeiligen Funktionen "hängen" bzw. werden nicht gelöscht.
Laut Java API (1.5) sollte der ganze String (content) durch den Regex-Parser gejagt werden und nicht zeilenweise, darum verstehe ich nicht, warum die Regex-Maschine darauf nicht anspringt, auch das MULTI_LINE-Flag nützt leider nichts.
Mache ich irgendwo einen Denkfehler oder kann mir jemand helfen?
Danke für eure Hilfe
Roman
Ich habe grössere Probleme bei einem Regex von mir.
Ich möchte eine Header-Datei mit Java für C soweit vorbereiten, dass keine Funktionen mehr vorhanden sind.
Die Funktionen sehen bspw. so aus:
Code:
long WINAPI MSGSendMessageToAgency(long agency, long ap, long classId,
long attrId, long msgLength, char* msg);
long WINAPI MSGWriteLogInfo( long lClassId,
LPSTR lpszProcShort,
long lLogLevel,
LPSTR lpszFormat,
...);
long WINAPI MSGWriteLogSyst( long lLogId,
long lTextId,
...);
long WINAPI MSGFunctionCallAdd( long lFctId, long lAttrId, LPSTR szFctName, LPSTR szAttrName);
Dazu habe ich folgendes Regex entwickelt, das mir auch teilweise hilft, die Fkt. zu entfernen:
Code:
content = content.replaceAll("(?m)(long|void|char)\\s+(WINAPI\\s+)?\\w*\\s*\\((.*?)\\);\\s*", "");
Laut Java API (1.5) sollte der ganze String (content) durch den Regex-Parser gejagt werden und nicht zeilenweise, darum verstehe ich nicht, warum die Regex-Maschine darauf nicht anspringt, auch das MULTI_LINE-Flag nützt leider nichts.
Mache ich irgendwo einen Denkfehler oder kann mir jemand helfen?
Danke für eure Hilfe
Roman