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

Beitrag lesen

Danke,

das war die beste Antwort. Vielen Dank für die tolle Erklärung.

Hallo!

Bei einem String sollen die Kommas innerhalb von Klammern gegen Plus Symbole ersetzt werden.

Das kannst du z.B. mit regex preg_replace() machen.

Um die Kommas innerhalb von Klammern zu finden, benoetigst du einen sog. Lookahead:

$str = preg_replace('/,(?=[^(]*\))/', "+", $str);

(?= leitet einen sog. positiven Lookahead ein. Dabei handelt es sich um eine zero width assertion. Es werden vom regex Parser keine Zeichen "konsumiert" sondern genau an der Stelle nach vorne geguckt, ob eine bestimmte Bedingung zutrifft.

Die Bedingung [^(]*\) es muessen beliebig viele Zeichen kommen, die keine oeffnende Klammer sind, gefolgt von einer schliessenden Klammer. [^ leitet eine negierte Zeichenklasse ein. Der Stern * dient als sog. Quantifier fuer 0 oder mehr.

Du kannst das Suchmuster hier probieren oder hier ein PHP Beispiel.

Viel Erfolg, Jonny 5