Kommentar nur bei bestimmten Worten speichern

Hallo mp3tag-Community,

ich benutze das Kommentar-Feld um damit Musiklisten zu erstellen. Mit meinem Player kann ich dann nach dem Kommentar-Feld filtern und so die Titel der Liste abspielen. Die Stichworte dafür sind festgelegt und begrenzen sich auf ein paar Stück. Ansonsten soll nichts anderes im Kommentar-Feld stehen. Ich habe bisher dafür folgende Aktion vom Typ Tag-Feld formatieren für den Kommentar gehabt. Einfach aneinandergekettete Vergleiche des Inhalts. Wenn eines der Stichwörter im Kommentar steht (und auch nur genau eines der genannten), dann lässt er das Stichwort drinne, ansonsten löscht er den Kommentar-Inhalt.

$if($or($eql(%comment%,'Partyliste'),$eql(%comment%,'Cocktail'),$eql(%comment%,'FredHermann'), $eql(%comment%,'Klaus'),$eql(%comment%,'Harald')),%comment%,)

Die Aktion ist bei 5 Stichwörtern schon ziemlich lang, was mir eigt. auch nicht so recht gefällt.

Die Stichwörter sind hier:

  • Partyliste
  • Cocktail
  • FredHermann
  • Klaus
  • Harald

Ich möchte allerdings, dass z.B. zwei oder mehrere der genannten Stichwörter im Kommentar stehen können, z.B. durch | getrennt (mit nur zwei wäre ich auch zufrieden). Bisher wirft er diese Konstellation ja auch raus.

Hier beispielhafte Aktionsresultate

Partyliste  --> bleibt stehen
www.abc.de --> wird gelöscht
FredHermann|Partyliste --> soll stehen bleiben

Hat da Jemand vielleicht einen Ansatz dazu?

Vielen Dank und mit freundlichen Grüßen

FredHermann

Die Funktion $strstr() überprüft, ob ein String ein einem anderen enthalten ist (also nicht, ob Gleichheit besteht) ... vielleicht nützt die ja was.

oder du machst einmal eine Bereinigung mit einem Filter:
NOT %comment% HAS FredHermann AND NOT %comment% HAS Party ...
Alle die datensätze, die übrigbleiben befreist du vom Kommentarfeld.

Stehen die Schlüsselwörter nebeneinander in einer Zeile und wie getrennt, oder steht jedes Schlüsselwort für sich in einer Zeile?

Ob das funktioniert?
Aktion "Tag-Feld formatieren"
Feld: COMMENT
Formatstring: $regexp(%COMMENT%,'\b(?:(?!(Partyliste|Cocktail|FredHermann|Klaus|Harald))\w)+\b',)

DD.20140928.0825.CEST

Hallo ohrenkino und DetlevD,

Das hatte ich auch schon mal ausprobiert, leider kam ich damit aber nicht wirklich weit.

Also die Schlüsselwörter stehen genau so wie ich sie oben beschrieben habe im Kommentarfeld, getrennt durch den senkrechten Strich | Also jede der 3 Zeilen ist ein Beispiel wie es vorher im Kommentar steht und was nach der Aktion damit passiert. Es gibt keine Mehrfach-Tagfelder, wenn du das meinst.

Das klappt super!
Jetzt bleibt ein | am Anfang oder Ende stehen, bzw. bei drei Stichwörtern bleiben eventuell mehrere | in der Mitte übrig. Aber das kann ich problemlos durch eine weitere Aktion löschen.

FredHermann|www.abc.de|Partyliste --> FredHermann||Partyliste
www.abc.de|Partyliste --> |Partyliste

Aber was ich noch viel besser finde ist, dass ich auch schnell ein Stichwort hinzufügen/ löschen kann.

EDIT:
Punkte wie in "www.abc.de" löscht er auch nicht, aber durch weitere Aktion erledigt.

Vielen Dank an euch beide und mit freundlichen Grüßen

FredHermann

$trim($regexp(%COMMENT%,'\b(?:(?!(Partyliste|Cocktail|FredHermann|Klaus|Harald))[\w.|])+\b','|'),'|') ==> "www.abc.de|Partyliste" -> "Partyliste" "Partyliste|Cocktail|FredHermann|Klaus|Harald" -> "Partyliste|Cocktail|FredHermann|Klaus|Harald" "Partyliste|aaa|Cocktail|Harald" -> "Partyliste|Cocktail|Harald" "aaa|FredHermann|Harald|bbb" -> "FredHermann|Harald"

DD.20140928.1200.CEST