halok
1
Hallo,
ich hab folgendes Problem beim Umbenennen der Tags.
Bei einigen Titel kommt es vor, dass Ausdrücke zweimal vorkommen. Das kann folgende Formen annehmen (meist im TITLE-TAG):
Songtitel (irgendetwas) (irgendetwas)/(irgendetwas)
oder
Songtitel [irgendetwas]/irgendetwas
oder
Songtitel (irgendetwas) (irgendetwas)
wobei "irgendetwas" jeweils den gleichen String darstellt.
Ergebnis soll sein: Songtitel (irgendetwas)
Kann ich das mit RegEx so maskieren, dass
- Das Ersetzen nur dann zum Tragen kommt, wenn solch eine Formatierung vorliegt
- Titel, die ein "/" enthalten, ohne etwas zu wiederholen (z.B. Songtitel/anderer Teil vom Songtitel (irendetwas)) nicht umgewandelt werden
Probiert habe ich schon
(.)/. --> $1 wandelt auch Titel aus 2. um
Kann man sich wiederholende Strings irgendwie maskieren und so eine Wiederholung ausschließen?
DetlevD
2
So auf die Schnelle würde ich es mit drei regulären Ausdrücken machen, jeweils passend für den speziellen Fall:
1.1.
$regexp('Songtitel (irgendetwas) (irgendetwas)/(irgendetwas)','^(.+?) \((.+?)\) \(.+?\)\/\(.+?\)$',$1 ($2),0)
oder
1.2.
$regexp('Songtitel (irgendetwas) (irgendetwas)/(irgendetwas)',' (.+?)\/\1$',,0)
oder
1.3.
$regexp('Songtitel (irgendetwas) (irgendetwas)/(irgendetwas)','(\(.+?\)) \1\/\1',$1,0)
2.
$regexp('Songtitel [irgendetwas]/irgendetwas','^(.+?) \[(.+?)\]/.+?$',$1 ($2),0)
oder
2.2.
$regexp('Songtitel [irgendetwas]/irgendetwas','\[(.+?)\]/\1',($1),0)
3.1.
$regexp('Songtitel (irgendetwas) (irgendetwas)','^(.+?) \((.+?)\) \(.+?\)$',$1 ($2),0)
oder
3.2.
$regexp('Songtitel (irgendetwas) (irgendetwas)','^(.+?) (.+?) \2$',$1 $2,0)
oder
3.3.
$regexp('Songtitel (irgendetwas) (irgendetwas)','(\(.+?\)) \1',$1,0)
Ergebnis in allen Fällen:
Songtitel (irgendetwas)
DD.20090210.1521.CET
halok
3
Ich danke Dir, werds gleich mal ausprobieren...