"Ersetzen mit regulären Ausdrücken" probiert, leider ohne Erfolg.


#1

Aus %album%

Dies ist kein Liebeslied; gelesen von Nina Petri, CD 2
Vergiss nie, dass ich Dich liebe; gelesen von Hannelore Hoger, CD 1
Die Leiche im Moor u. 2 weitere, Philipp Maloney; gelesen von Armin Rohde
Die fliegenden Sterne, Pater Brown; gelesen von Peer Augusinski, Volker Brandt u.a

soll werden

Dies ist kein Liebeslied, CD 2
Vergiss nie, dass ich Dich liebe, CD 1
Die Leiche im Moor u. 2 weitere, Philipp Maloney
Die fliegenden Sterne, Pater Brown

also das "; gelesen von " entfernt werden.
Sollte noch ein ", CD #" folgen, soll dies erhalten bleiben.

Ich habe es mit "Ersetzen mit regulären Ausdrücken" probiert, leider ohne Erfolg.

Mein Vorgehen:
Der Punkt "." matched jedes Zeichen. Wiederholungen, "+" einmal oder mehrfach: also (.+)
Die Zeichenfolge, die immer gleich ist: "; gelesen von "
Regulärer Ausdruck: (.+); gelesen von (.+), (.+)
Treffer ersetzen durch: $1, $3

Wo liegt der Fehler?


#2

Es müssen zwei getrennte Aktions-Läufe durchgeführt werden, und zwar

einmal für Anhänge mit ", CD #"
Regulärer Ausdruck: (.+); gelesen von (.+), (.+)
Treffer ersetzen durch: $1, $3

und andererseits für Anhänge ohne ", CD #"
Regulärer Ausdruck: (.+); gelesen von (.+)
Treffer ersetzen durch: $1


#3

Ich möchte am Dateinamen $num(%track%,2). %title% weitere Felder anhängen, aber nur wenn diese NICHT leer sind.
Diese sollen sein

  1. ; gelesen von %band%
  2. ; realisiert von %composer%

#4

$num(%track%,2). %title%$if($eql(%band%,$not( )),,; gelesen von %band%)$if($eql(%composer%,$not( )),,; realisiert von %composer%)


#5

$num(%track%,2). %title%[ ; gelesen von %band%][ ; realisiert von %composer%]

DD.20080609.0812.CEST


#6

Danke für die kompakte und vor Allem übersichtliche Lösung.


#7

Wenn du z. B. in der Funktion $regexp() in der mit Kommas separierten Funktionsparameterliste in einem der Parameter selbst wieder ein Komma verwenden willst, dann darf dieses Komma nicht als Separator der Parameterliste verwechselt werden, sondern muss deutlich als ein Zeichen des Parameterliterals zu erkennen sein, also muss es ("entwertet" oder "escaped") in Hochkommas eingeschlossen sein : ','.

Probiere für beide Fälle:
$regexp(%album%,^(.+?)(; gelesen von .+?)(, CD \d+)?$,$1$3)

DD.20080609.1942.CEST


#8

Danke!