Solange das s-flag nicht gesetzt ist, matcht der . keine Zeilenumbrüche.
Falls man das noch nicht kennt und man danach suchen muß, ist s-Modifier der bessere Begriff, denke ich.
Ich habe die Modifier hier nachgeschlagen und erhalte mit folgendem Suchmuster
/\{\*description=(.+)\*\}/is
dieses Ergebnis:
das is t eine beschreibung*} {*key=stichwort eins*} {*key=stichwort zwei*} {*key=stichwort drei
Das sagt mir doch, dass das Suchmuster jetzt durchaus für mehrere Zeilen gilt, aber das die Suche nicht beim ersten schließenden
*}
, sondern beim letzten vorkommenden beendet wird.
Wieso?
Weil (.+) nunmal für alle Zeichen gilt, welche * und } einschließen.
Wie behebe ich das?
Für den Beschreibungstext alle Zeichen bis auf * und } erlauben.
Bedeutet: Für erlaubte Zeichen einfach *} negieren.
Was mich zu dem Suchmuster
/\{\*description=([^\*\}]+)\*\}/is
bringt.
Welches funktioniert (:
Danke für eure Antworten.