Ersetzen mit regulärem Ausdruck unter verschiedenen Bedingungen

Ich möchte meine Genre-Einträge verkürzen. Meine bisherigen Einträge waren mit bis zu drei Untergenres versehen, immer getrennt durch "leer-Tilde-leer". Zusätzlich gibt es Alternativ-Einträge, die danach durch "leer-unterbr.Pipe-unterbr.Pipe-leer" angehängt sein können. Siehe Beispiele:

Jazz
Rock ~ Southern Rock
Folk ~ US-amerikanisch ~ Folk Rock
Punk ~ Hardcore Punk ~ Emocore ~ Screamo
Rock ~ Deutschrock ~ Krautrock ¦¦ Rock ~ Progressive Rock

Die Genre-Einträge sollen auf zwei Begriffe getrennt durch "leer-Tilde-leer" reduziert werden; und zwar auf den ersten und den letzten. Ist nur ein Begriff vorhanden, soll dieser gedoppelt werden. Die Alternativ-Einträge bleiben unberücksichtigt. Beispiele wie oben:

Jazz ~ Jazz
Rock ~ Southern Rock
Folk ~ Folk Rock
Punk ~ Screamo
Rock ~ Krautrock

Ich habe es mit verschiedenen Varianten des Ersetzens mit regulären Ausdrücken versucht; diese sind jedoch allesamt fehlgeschlagen. Vielleicht hat jemand einen besseren Vorschlag?

Hallo Manfred, vielleicht funktioniert es so ...

1. Aktion "Tagfelder importieren" Quelle: %GENRE% Formatstring: %GENRE% ¦¦ %GENRE_ALT% ... oder... Formatstring: %GENRE% ¦¦ %DUMMY% 2. Aktion "Tag-Feld formatieren" Feld: GENRE Formatstring: $regexp(%GENRE%,'^(.+?) ~ .*$','$1')' ~ '$regexp(%GENRE%,'^.* ~ (.+?)$','$1')

DD.20150318.1916.CET

Danke, danke, danke! Funktioniert perfekt.