[quote=Taulmarill,29.Mar..2006, 13:26]hm, der regex den du gepostet hast hat erst mal gar nicht funktioniert, das nächste mal bitte mit copy&paste anstatt abtippen.
annyway, versuch mal folgendes
$title =~ s/({[^}]+})/{$1}/gs;
[/quote]
Hier möchte ich nur kurz Anmerken das die Verwendung der Option /s unnötig ist. Die Option verändert den String $title nicht. Die Option verändert die bedeutung des Punktes von Standadmäßig [^\n] darauf das es auf absolut jedes Zeichen passt. Da du aber gar keinen Punkt in deiner Regex hast, kannst du diesen auch weg lassen.
----
Ansonsten mal eine andere Frage, du möchtest Praktisch das um jeder geschweiften Klammer eine neue geschweifte Klammer steht?
Eigentlich ist das doch Identisch wenn du einfach jede öffnende und schließende Klammer durch zwei öffnende und schließende Paare ersetzt. Also:
$text =~ s/{/{{/g;
$text =~ s/}/}}/g;
Ist eigentlich Logischer, und dürfte deutlich Performanter sein. Das was ja zwischen den beiden paaren steht möchtest du ja anscheind nicht auslesen, und auch nicht wiederverwenden, von daher wäre eine Speicherung mit Klammern eine reine Performance verschwendung.
Gedanken über Single-line Modus und Multi-line Modus musst du dir erst machen, wenn du Sonderzeichen wie dem Punkt, Zirkumflex(^) und das Dollarzeichen in deiner Regex verwendest. Da die Optionen /s und /m nur dessen bedeutung verändert. Wenn du diese Zeichen nicht benutzt, wird jeder String komplett betracht, egal ob er über mehrere Zeilen geht, oder nicht.
Die bedeutung Single/Multi line ist auch nicht wirklich passend.\n\n
<!--EDIT|sid burn|1143665724-->
Nicht mehr aktiv. Bei Kontakt: ICQ: 404181669 E-Mail: perl@david-raab.de