Frage zu Regulären Ausdruck (Alle Klammern im Text entfernen)

Friesi

Erfahrenes Mitglied
Ich möchte in einem Text alle Kommentare entfernen. Die Kommentare stehen in Klammern.

Beispiel:
Das ist die Nachricht (und hier der Kommentar)

(und hier der Kommentar)
Soll entfernt werden.
Das klappt soweit auch ganz gut:

PHP:
$line  = "das ist ein test (und das ein kommentar)";
$reqex = "/(.*) \((.*)\)/";

$text = preg_replace($reqex,"\\1",$line);

In $text steht nun das ist ein test

Wenn es in einem Text aber nun mehrere Klammern gibt und hinter der Klammer auch noch was steht, geht das ganze leider nicht mehr :/

Beispiel:
Das ist ein Test (Kommentar) und das ist gut so (Kommentar) oder?

Hab leider noch nicht sooo die Erfahrung mit Regulären Ausdrücken und hoffe hier auf Hilfe :-)
 
Warum nicht einfach nur die Klammern entfernen und nicht den Teil vor der Klammer mit einbeziehen?

PHP:
$reqex = "/\((.*)\)/"; 
$text = preg_replace($reqex,"",$line);

Habs noch nicht ausprobiert, müsste aber so gehen.
 
Ich plädiere für folgenden Ausdruck: /\(.*?\) ?/
Dadurch werden auch unnötige Leerzeichen entfernt und das Ersetzen mehrerer Kommentare funktioniert damit überhaupt erst (da * standardmäßig „gierig“ ist).
 
Danke für die ganzen Tipps.

Könnt ihr mir eigentlich weitere Tipps/Howtos zu Regulären Ausdrücken geben?
Hab mir zwar schon das Buch "Reguläre Ausdrücke" von OReilly geholt und gelesen würde das ganze aber doch noch mehr vertiefen.
 
Zurück