Erkennt "preg_replace()" Zeilenumbrüche?

  • Ich würde gerne für einen einfachen Code-Converter mit preg_replace() diese Umwandlung machen: z.B. sollte

    Zitat

    public void main() {
    printf("Test");
    }

    zu

    Zitat

    printf("Test");

    umgewandelt werden.

    Ich möchte nur das "public void main() {" und das "}" am Ende löschen. Der Rest soll eh gleich bleiben.

    Es würde eh gut funktionieren, allerdings erkennt das preg_replace() nach meinem Suchmuster keine Newlines, sodass keine Ersetzung durchgeführt wird, wenn die Main-Funktion nicht auf einer einzigen Zeile steht.

    Momentan habe ich diesen php-Code:


    Die Daten (das Programm), das umgewandelt werden soll, werden aus diesem Formular gesendet:


    Ich habe auch schon versucht, den Code, der die Newlines in Breaks umwandelt und danach die Breaks löscht, vor dem preg_replace() zu setzen, aber da funktioniert die Umwandlung leider auch nicht, obwohl die Breaks eigentlich gelöscht sein sollten.

    Ich habe auch probiert, statt .* ein \n zu verwenden, um zunächst einmal das Suchmuster zu erkennen, wo sich zwischen "{" und "}" nur Zeilenumbrüche befinden, aber das funktioniert leider auch nicht.

    Wie kann ich das Suchmuster am besten angeben, damit die Umwandlung auch dann funktioniert, wenn sich die main-Funktion auf mehreren Zeilen erstreckt? Ist es mit preg_replace() eh möglich, ein Suchmuster zu erkennen, das sich über mehrere Zeilen erstreckt?

    Im Voraus vielen Dank für Eure Hilfe!

    Viele Grüsse,

    Robert