10 Jahre ist es her, dass Fredo hier die folgende Frage stellte: Wie kann man eine Folge von mehreren Namen, die mehr als einen Vornamen haben, invertieren.
Bsp.:
Johann Sebastian Bach; Wolfgang Amadeus Mozart; Ferruccio Busoni
soll werden zu:
Bach, Johann Sebastian; Mozart, Wolfgang Amadeus; Busoni, Ferruccio
Fredo benutzte damals als Trenner (im Ausgangsmaterial) zwischen den Namen nicht einen Strichpunkt, sondern ein Komma.
Von den beiden genialen "Cracks" PON und DetlevD kamen ausgefuchste Lösungsvorschläge:
$regexp($regexp(%composer%,(.?) (\w)(', '|$),$2', '$1; ),; $,) [PON]
oder
$cutRight($regexp(%composer%', ','(.?)\s(\w),\s','$2, $1; '),2) [DetlevD]
Ich habe mir die vergangene Nacht um die Ohren geschlagen, um die Formeln so anzupassen, dass sie auch mit einem Strichpunkt als Trenner der Namen funktionieren. Es ist mir nicht gelungen.
Liegt wohl daran, dass ich die beiden Ausdrücke nicht wirklich in allen Details verstehe (z.B. die Maskierungen mit den Hochkommas bei DetlevD, etc.)
An pons Beispiel angelehnt: Ersetze durch den regulären Ausdruck "(.?) (\w)(; |$)" das angegebene Muster in der Zeichenkettedurch durch "$2', ' $1; " führt nicht zum gewünschten Ergebnis.
Wer kann helfen? Wer kann es mir erklären, wie die beiden Formlen funktionieren und richtig angepasst werden müssen?
Danke & Gruß
