MudGuard: PHP: Im Sting nach Komma suchen die sich in Klammern befinden

Beitrag lesen

Hi,

Also \(([^),]*), ersetzen durch ($1+.

bei bla(x,y,z)blubb ersetzt das aber auch nur das , nach dem x, denn für das zweite Match wird erst hinter dem ersten Match angefangen, dort findet sich aber keine öffnende Klammer mehr ...

Eine Lösung per Regex erscheint mir schwierig.

Ich würde das vermutlich so lösen:

ersetze = 0;
Zeichenweise durchlaufen durch den String
  falls aktuellesZeichen == '(' setze ersetze++;
  sonst falls aktuellesZeichen == ')' und ersetze > 0 setze ersetze-- 
  sonst falls aktuellesZeichen == ',' und ersetze > 0, setze aktuellesZeichen = '+'
  schreibe aktuellesZeichen in den Ausgabestring

cu,
Andreas a/k/a MudGuard