Hi,
Für solche allgemeinen Suchmuster bieten sich reguläre Ausdrücke an. In PHP preg_replace
Dein Suchmuster könnte so aussehen
/\(.*\,.*\)/
Dabei bedeuten
/
Stringanfang bzw. Ende,
Das hat Christian ja schon erklärt.
\(
die öffnende Klammer, die maskiert werden muss,
.*
kein oder beliebig viele beliebige Zeichen.
Und das ist falsch.
Denn das würde auch bla) matchen, so daß das nachfolgende , nicht in der Klammer steht - in Verbindung mit dem zweiten .*
, das auch (bla matchen würde ...
Wenn, dann müßte hier ungreedy gesucht werden, also mit .*?
.
Das hätte dann aber immer noch das Problem, das pro Durchgang nur 1 Komma pro Klammer gefunden würde, es müßte also in einer Schleife so lange ersetzt werden, bis der Ergebnisstring dem vorherigen entspricht.
Um das Komma zum Ersetzen zu bestimmen, muss es in Klammern gesetzt werden,
Nein.
Im Ersetzungsstring werden die beiden variablen Teile (bei Dir .*
) wieder benötigt, um sie in den Ergebnisstring wieder einsetzen zu können, also müssen diese beiden geklammert werden.
ungetestet
und nicht funktionierend.
cu,
Andreas a/k/a MudGuard