Inhalt von MP3tag-Tagfeldern in Ausdrücken

Ich frage mich gerade in wie weit es möglich ist und wenn ja wie man den Inhalt von MP3Tag-Variablen in Ausdrücken einbinden kann.

Um zu erklären was ich meine, ein Beispiel.
Bei mir haben sich durch Verwendung von Websource-Skripten im Tagfeld UNSYNCEDLYRICS unerwünschte Bestandteile mit verewigt, die ich gerne loswerden möchte.
So steht zum Beispiel in hunderten Dateien am Ende:
Send "%title%" Ringtone to your cell

%title% steht also in diesem Fall als Variable für den wechselnden Inhalt des Tagfeldes TITLE in der jeweiligen Datei. Der Inhalt des Tagfeldes steht wie im Beispiel immer in doppelten Anführungsstrichen.

Um diesen unerwünschten Bestandteil loszuwerden wäre es also erforderlich, einen $trim-$regex-Ausdruck zu benutzen, der es erlaubt, den variablen Inhalt von TITLE einzubeziehen.
Alternativ habe ich schon mal daran gedacht mit Send " als Anker auszukommen, aber ich befürchte, dass das eventuell einige falsche Treffer mit einbeziehen könnte.

Ein
$replace('Send "'%title%'" Ringtone to your cell',,)
müsste eigentlich die Zeile löschen.

Du meinst als Bestandteil einer "Tag-Feld formatieren"-Aktion?
Das klappt so nicht. Der zu ersetzende Text ersetzt vielmehr den gesamten Inhalt von UNSYNCEDLYRICS.

Sorry, wo war ich nur mit meinen Gedanken ...
$replace(%unsyncedlyrics%,'Send "'%title%'" Ringtone to your cell',)

1 Like

Danke für die Lösung per $replace(). Als es mit Deiner ersten Version nicht klappte hatte ich zwar auch schon die richtige Lösung ausprobiert, die klappte aber bei mir auch nicht, weil ich nicht bedacht hatte, dass $replace() offenbar Groß/Kleinschreibung berücksichtigt.

Hast Du einen Vorschlag um ein Funktionieren unabhängig von Groß- und Kleinschreibung zu erreichen?

In dem Zusammenhang würde mich auch interessieren, ob und wenn ja wie man Tagfelder-Inhalt im Filter als Filterkriterium nutzen kann?
als Beispiel: %unsyncedlyrics% HAS Inhalt von %title%

"$ifgreater($strstr(%unsyncedlyrics%,%title%),0,Ja,Nein)" IS "Ja"

Mit der Lösung habe ich das Gros schon mal hinbekommen. Es bleiben jedoch einige hundert Dateien, in denen in denen statt der doppelten Anführungsstriche eine Variation mit Titeln in nur einfachen Anführungsstrichen enthalten ist.
$replace(%unsyncedlyrics%,'Send ''%title%'' Ringtone to your cell',)
klappt jedoch zu meiner Verwunderung nicht.

Muss ich das ' maskieren und wenn ja, wie?

Hier ein Post zu dem Thema.


Vielleicht ist es einfacher, eine Aktion vom Typ "Ersetzen" vorzuschalten, die "Send '" in "Send "" umformt. Und dann wir der reguläre Ausdruck angewendet.

Ich habe es hinbekommen.
$replace(%unsyncedlyrics%,'Send '''%title%''' Ringtone to your cell',)

Jetzt bleiben noch ca. 100 zu bearbeitende Dateien übrig.
Hier liegt das Problem darin, dass der Inhalt des Tagfeldes TITLE nicht exakt dem Text im Tagfeld UNSYNCEDLYRICS entspricht.
Meistens handelt es sich im Tagfeld TITLE um eine Ergänzung des eigentlichen Songtitels, z.B. (Bonus Track), (Live), (Remastered) usw.
Wäre sowas noch per generischer Aktion zu lösen oder muss ich mich ans manuelle Ändern machen?

Das müsste doch ein Muster vom Typ "Send.*?Ringtone to your cell" sein, das dann durch nichts ersetzt wird.

Das muss doch wohl noch in $regexp()?

Geht auch mit klassischem "Ersetzen mit regulärem Ausdruck".
Ich persönlich finde immer, dass je mehr Textkonstanten in so einem Suchstring sind, desto eher ist die Ersetzen-Aktion geeignet, da man da Such- und Ersetzen-String besser voneinander getrennt kriegt, speziell, wenn Anführungsstriche beteiligt sind.
Aber du kannst es auch mit $regexp() machen.