Hallo, ich habe seit zwei Stunden ein RegEx-Ersetzungsproblem.
Innerhalb eines Textes $text können mehrfach Zeichenfolgen innerhalb einer öffnenden und schliessenden geschweiften Klammer auftauchen:
... {Berlin, Bremen} .... {Rom - Pisa} .... {Castrop<br> Rauxel} ...
Sofern innerhalb der geschweiften Klammern jedoch eine bestimmte Zeichenfolge, z.B. <br> auftaucht, soll <br> ersatzlos gelöscht werden, und zwar jedesmal. Aus der obigen Zeile soll also werden:
... {Berlin, Bremen} .... {Rom - Pisa} .... {Castrop Rauxel} ...
Meine Anweisung haut jedoch nicht hin:
$text =~ s/{(.*?)<br>(.*?)}/{$1$2}/g;
Oder genauer: das haut nur hin, wenn in $text eine einzige Zeichenfolge der Art
{xyz <br> xyz}
auftaucht, sobald dort mehrere stehen klappt es nicht mehr.
Aber wieso? Ich habe doch ein "g" hinter die Ersetzungs-Anweisung drangehängt?
Bin ziemlich ratlos, mache ich einen Denkfehler?