# Mehrere Klammern - eine mit Inhalt soll gelöscht werden

**URL:** <https://community.mp3tag.de/t/mehrere-klammern-eine-mit-inhalt-soll-geloscht-werden/45879>\
**Category:** Allgemein\
**Created:** [July 12, 2019, 5:39pm UTC](https://community.mp3tag.de/t/mehrere-klammern-eine-mit-inhalt-soll-geloscht-werden/45879 "2019-07-12T17:39:12Z")\
**Posts on this page:** 15\
**Page:** 1

<div class="post-metadata">

**Author:** ![6von5](https://community.mp3tag.de/letter_avatar_proxy/v4/letter/6/c6cbf5/32.png) [@6von5](https://community.mp3tag.de/u/6von5)\
**Post date:** [July 12, 2019, 5:39pm UTC](https://community.mp3tag.de/t/mehrere-klammern-eine-mit-inhalt-soll-geloscht-werden/45879/1 "2019-07-12T17:39:12Z")

</div>

In einem anderen Thread habe ich eine Anfrage gestellt bezüglich des Entfernens von Klammern samt ihrem Inhalt, wenn sich der Text darin ändert.  
Der User [ohrenkino](https://community.mp3tag.de/u/ohrenkino) mir zwei Lösungsvorschläge gemacht, die auch wunderbar das ausführten was ich wollte. Dafür nochmals Danke.  
$regexp(%feldname%, (._),) löscht alle klammern samt Inhalt  
$regexp(%feldname%, (1. Wort in der Klammer._),) löscht die Klammer samt Inhalt mit dem gleichen Wort, lässt andere Klamern davor mit anderem Inhalt stehen-  
Soweit so gut, nun aber brauche ich auch noch einen Formatstring, der nachfolgende Klammern nicht löscht.

Beispiel Artist - Title (live) (Hitparade Platz xxx) wende ich den 2. Code an, uns setze als 1. Wort in der Klammer das Wort Hitparade wird nur die 2. Klammer mit dem unerwünschten Inhalt gelöscht. Die erste mit erwünschtem Inhalt bleibt bestehen.  
Ändere ich jedoch die Reihenfolge und setze die Klammer (live) dahinter, abgetrennt durch Lerzeichen von der 2. Klammer, wird sie auch mit gelöscht.  
Diese Kammer mit samt ihrem Inhalt würde ich aber gerne behalten, da der Hinweis auf die Liver-Version wichtig ist.  
Artist - Title **(Hitparade Platz xxx)** (live) nur das Fettgduckte sollte also gelöscht werden, mit nochmals dem Hinweis, dass sich der Text in der 1. Klammer ändert.  
Also ein Formatstring, mit dem ich bestimmen kann, bei mehreren Klammer welche mit samt Inhalt gelöscht werden soll.

**Hinweis ans Team** : in diesem Thread [https://community.mp3tag.de/t/sich-andernde-zeichenkette-entfernen/45648/3](https://community.mp3tag.de/t/sich-andernde-zeichenkette-entfernen/45648/3) hatte ich die ursprüngliche Anfrage gestellt, der ist aber leider geschlossen. Vlt. wäre es sinnvoll, diese Anfrage in den Ursprungsthread zu verschieben und ihn wieder zu öffnen, da die Frage ja darauf aufbaut

---

<div class="post-metadata">

**Author:** ![ohrenkino](https://community.mp3tag.de/user_avatar/community.mp3tag.de/ohrenkino/32/4843_2.png) [@ohrenkino](https://community.mp3tag.de/u/ohrenkino)\
**Post date:** [July 12, 2019, 5:47pm UTC](https://community.mp3tag.de/t/mehrere-klammern-eine-mit-inhalt-soll-geloscht-werden/45879/2 "2019-07-12T17:47:43Z")

</div>

Du könnest mal versuchen:  
`$regexp('Artist - Title (Hitparade Platz xxx) (live)',(.*)\(.*\) (.*),$1$2)`  
Das führt zu "Artist - Title (live)".

---

<div class="post-metadata">

**Author:** ![6von5](https://community.mp3tag.de/letter_avatar_proxy/v4/letter/6/c6cbf5/32.png) [@6von5](https://community.mp3tag.de/u/6von5)\
**Post date:** [July 12, 2019, 6:02pm UTC](https://community.mp3tag.de/t/mehrere-klammern-eine-mit-inhalt-soll-geloscht-werden/45879/3 "2019-07-12T18:02:18Z")

</div>

die "xxx" in der ersten Klammer sind nur Platzhalter, für die Platzierungen der Songs und ändern sich mit jedem Lied. Von Daher habe ich das weggelassen und nur "Hitparade" in den Formatstrig geschrieben.  
Ansonsten funktioniert der Formatstring von ohrenkino wie gewünscht.  
Auch hier vielen Dank für die schnelle Hilfe

---

<div class="post-metadata">

**Author:** ![Crissov](https://community.mp3tag.de/user_avatar/community.mp3tag.de/crissov/32/6619_2.png) [@Crissov](https://community.mp3tag.de/u/Crissov)\
**Post date:** [July 13, 2019, 4:24pm UTC](https://community.mp3tag.de/t/mehrere-klammern-eine-mit-inhalt-soll-geloscht-werden/45879/4 "2019-07-13T16:24:47Z")

</div>

Dann ersetze `xxx` durch `[0-9]+` oder `\d+` für eine beliebige Ganzzahl.

---

<div class="post-metadata">

**Author:** ![ohrenkino](https://community.mp3tag.de/user_avatar/community.mp3tag.de/ohrenkino/32/4843_2.png) [@ohrenkino](https://community.mp3tag.de/u/ohrenkino)\
**Post date:** [July 13, 2019, 9:42pm UTC](https://community.mp3tag.de/t/mehrere-klammern-eine-mit-inhalt-soll-geloscht-werden/45879/5 "2019-07-13T21:42:17Z")

</div>

> [@Crissov](#):
>
> Dann ersetze `xxx` durch `[0-9]+`

Schon richtig, kann man machen, muss man aber meiner Ansicht nach beim vorgeschlagenen Ausdruck

> [@ohrenkino](#):
>
> `$regexp('Artist - Title (Hitparade Platz xxx) (live)',(.*)\(.*\) (.*),$1$2)`

einfach die erste Klammer löscht, egal, was da drinsteht.

---

<div class="post-metadata">

**Author:** ![Crissov](https://community.mp3tag.de/user_avatar/community.mp3tag.de/crissov/32/6619_2.png) [@Crissov](https://community.mp3tag.de/u/Crissov)\
**Post date:** [July 13, 2019, 10:24pm UTC](https://community.mp3tag.de/t/mehrere-klammern-eine-mit-inhalt-soll-geloscht-werden/45879/6 "2019-07-13T22:24:40Z")

</div>

Die Frage ist ja prinzipiell die gleiche wie in

> [@Exclusively omitting "(feat. \_\_\_\_ )" from all track titles](https://community.mp3tag.de/t/exclusively-omitting-feat-from-all-track-titles/45882):
>
> I've recently made a post about removing the "(feat. \_\_\_\_ )" portion from the TITLE field of a tracks like this: Legends (feat. Kalibwoy) (SuddenBeatz Remix) I was kindly pointed in the right direction of using Format Value Field \> TITLE Format String \> $regexp(%title%,(.\*)\(.\*\) (.\*),$1$2) which brought me to the desired result of Legends (SuddenBeatz Remix) Moving forward from that, though, I have other tracks that are not remixes, such as Nightmare (feat. Pusha T & Barrington Levy) …

Es soll jeweils ein Klammernpaar mit bestimmten aber verlässlichen Inhalt gelöscht werden, aber andere Klammern sollen erhalten bleiben. `$regexp(%variable%,(.*)\(.*\) (.*),$1$2)` ist grundsätzlich der richtige Ansatz: _optional beliebiger Text + Klammer auf + optional beliebiger Text + Klammer zu + optional beliebiger Text_ wird durch den ersten und den letzten Text ersetzt, wobei beide auch leer sein können. Es empfiehlt sich aber, zwischen den Klammern keine weitere Klammer zuzulassen und alle Leerzeichen vor und hinter der Klammer zu einem zusammenzufassen, daher: `$regexp(%variable%,(.*)\s*\([^()]*\)\s*(.*),$1 $2)`

---

<div class="post-metadata">

**Author:** ![6von5](https://community.mp3tag.de/letter_avatar_proxy/v4/letter/6/c6cbf5/32.png) [@6von5](https://community.mp3tag.de/u/6von5)\
**Post date:** [July 14, 2019, 7:45am UTC](https://community.mp3tag.de/t/mehrere-klammern-eine-mit-inhalt-soll-geloscht-werden/45879/7 "2019-07-14T07:45:40Z")

</div>

Ich musste diesen Beitrag komplett abändern, weil keine der hier gemachten Vorschlägen der gewünschten Lösung entspricht.  
Am nächsten kommt der Vorschlag von @ohrenkino meinem Wunsch  
**`$regexp('Artist - Title (Hitparade) (live)',(.*)\(.*\) (.*),$1$2)`**  
wobei aber als Ergebnis tatsächlich **Artist - Title (live)** da steht.  
Artist und Title sollen jedoch nur Platzhalter für tatsächliche Interpreten und Titel sein.

Ich versuche es mal mit Beispielen zu erklären, was für eine Lösung ich suche.  
AC - DC - Heiwä tu Häll (live) **(Metal Charts Platz 1)**  
Edguy - Hymn **(Metal Charts aller erster Platz)** (live)  
Hammerfall - Hammerfall **(Metal Charts bester Platz)**

Das jeweils fett Markierte soll entfernt werden, wenn möglich in einem Rutsch und soll dann so aussehen

AC - DC - Heiwä tu Häll (live)  
Edguy - Hymn (live)  
Hammerfall - Hammerfall

Sollte dies im Dateinamen nicht durchfürbar sein, dann halt im Title. Wichtig ist, dass manchmal die zu löschende Klammer die erste ist Hymn **(Metal Charts aller erster Platz)** (live), manchmal die zweite Heiwä tu Häll (live) **(Metal Charts Platz 1)** und mal ist nur die eine zum Löschen da. Hammerfall **(Metal Charts bester Platz)**.

Der Inhalt der zu löschenden Klammer beginnt immer gleich (Metal Charts) ändert den Inhalt aber danach..  
Der Formatstring von @ohrenkino hat im Prinzip genau das getan, nur stand nachher Artist - Title als ausgeschriebene Wörter da. Es sollten aber die Tatsächlichen Interpreten und Songtitel da stehen.

Wenn es dafür eine einfach Lösung geben würde wäre ich sehr dankbar

---

<div class="post-metadata">

**Author:** ![ohrenkino](https://community.mp3tag.de/user_avatar/community.mp3tag.de/ohrenkino/32/4843_2.png) [@ohrenkino](https://community.mp3tag.de/u/ohrenkino)\
**Post date:** [July 15, 2019, 7:46am UTC](https://community.mp3tag.de/t/mehrere-klammern-eine-mit-inhalt-soll-geloscht-werden/45879/8 "2019-07-15T07:46:36Z")

</div>

> [@6von5](#):
>
> Der Formatstring von @ohrenkino hat im Prinzip genau das getan, nur stand nachher Artist - Title als ausgeschriebene Wörter da

So war das Beispiel - du müsstest natürlich den richtigen Feldnamen an der Stelle eintragen. oder die Funktion an der richtigen Stelle einsetzen.  
Ich sehe allerdings schwarz für den Ansatz

> [@6von5](#):
>
> Das jeweils fett Markierte soll entfernt werden, ... möglich in einem Rutsch

Da reguäre Ausdrücke Muster beschreiben, jedoch jedes Mal völlig unterschiedliche Muster zu finden sind.

> [@6von5](#):
>
> Sollte dies im Dateinamen nicht durchfürbar sein, dann halt im Title.

Das macht mich dann aber jetzt doch stutzig: wir basteln hier die ganze Zeit am Dateinamen rum? Wieso schreibst du den nicht einfach mit Konverter\>Tag-Dateiname neu? Beim Neuschreiben kannst du auch reguläre Ausdrücke verwenden.  
Und auch glaube ich, dass Dateinamen kaum sinnvolle Informationsspeicher sind. Die EInschränkungen hinsichtlich zulässiger Zeichen sind zu groß.

---

<div class="post-metadata">

**Author:** ![6von5](https://community.mp3tag.de/letter_avatar_proxy/v4/letter/6/c6cbf5/32.png) [@6von5](https://community.mp3tag.de/u/6von5)\
**Post date:** [July 15, 2019, 8:11am UTC](https://community.mp3tag.de/t/mehrere-klammern-eine-mit-inhalt-soll-geloscht-werden/45879/9 "2019-07-15T08:11:51Z")

</div>

> [@ohrenkino](#):
>
> Ich sehe allerdings schwarz für den Ansatz

Im Prinzip habe ich aufbauend auf deiner Lösung eine eigene gefunden, nur eine leichte Veränderung, aber ich bekomme kein Leerfeld zwischen dem Titel und der gewünschten Klammer.  
$regexp(%title% (downloaded) (live), (._) (._),$1$2) bringt das Ergebnis titel(live)  
Es entfernt aber die unerwünschten Klammer und lässt die Erwünschte stehen, ganz gleich welche Klammer zuerst steht. Nur halt das verflixte Leerfeldwill einfach nicht zwischen dem Titel und der Klammer mit live

---

<div class="post-metadata">

**Author:** ![ohrenkino](https://community.mp3tag.de/user_avatar/community.mp3tag.de/ohrenkino/32/4843_2.png) [@ohrenkino](https://community.mp3tag.de/u/ohrenkino)\
**Post date:** [July 15, 2019, 8:15am UTC](https://community.mp3tag.de/t/mehrere-klammern-eine-mit-inhalt-soll-geloscht-werden/45879/10 "2019-07-15T08:15:46Z")

</div>

Kanst du bitte den regulären Ausdruck in Accent graves einschließen - sonst verschwinden so einige Zeichen und der reguläre Ausdruck sieht ungültig aus.

Für mehr Leerzeichen: bau eines zwischen $1 und $2 ein: `$1 $2`

---

<div class="post-metadata">

**Author:** ![6von5](https://community.mp3tag.de/letter_avatar_proxy/v4/letter/6/c6cbf5/32.png) [@6von5](https://community.mp3tag.de/u/6von5)\
**Post date:** [July 15, 2019, 9:08am UTC](https://community.mp3tag.de/t/mehrere-klammern-eine-mit-inhalt-soll-geloscht-werden/45879/11 "2019-07-15T09:08:19Z")

</div>

Ich weiß ja nicht, ob mein Mp3Tag ein anderer ist, aber gerade mit den Accent Graves steht bei mir nicht der tatsächlie Titelnamen sondern wieder nur %title%.bei allen Liedern

---

<div class="post-metadata">

**Author:** ![ohrenkino](https://community.mp3tag.de/user_avatar/community.mp3tag.de/ohrenkino/32/4843_2.png) [@ohrenkino](https://community.mp3tag.de/u/ohrenkino)\
**Post date:** [July 15, 2019, 9:11am UTC](https://community.mp3tag.de/t/mehrere-klammern-eine-mit-inhalt-soll-geloscht-werden/45879/12 "2019-07-15T09:11:30Z")

</div>

Sorry, da war ich zu knapp:  
Ich meine hier im Forum.  
Denn in der Darstellung der $regexp() in deinem Post stehen wesentlich weniger Zeichen als für einen sinnvollen Ausdruck stehen müssten.

---

<div class="post-metadata">

**Author:** ![6von5](https://community.mp3tag.de/letter_avatar_proxy/v4/letter/6/c6cbf5/32.png) [@6von5](https://community.mp3tag.de/u/6von5)\
**Post date:** [July 15, 2019, 9:18am UTC](https://community.mp3tag.de/t/mehrere-klammern-eine-mit-inhalt-soll-geloscht-werden/45879/13 "2019-07-15T09:18:34Z")

</div>

Sorry, war mir nicht aufgefallen, dass das Forum hier einige Zeichen weglässt..

`$regexp(%title% (downloaded) (live), \(.*\) (.*),$1 $2)`

So sieht mein jetztiger Formatstring aus, auch ein gesetztes Leerfeld zwischen $1 und $2 bring kein Leefeld in die Ausgabe. Immer noch Titel(live) statt Titel (live). Ansonsten klappt es

---

<div class="post-metadata">

**Author:** ![ohrenkino](https://community.mp3tag.de/user_avatar/community.mp3tag.de/ohrenkino/32/4843_2.png) [@ohrenkino](https://community.mp3tag.de/u/ohrenkino)\
**Post date:** [July 15, 2019, 9:31am UTC](https://community.mp3tag.de/t/mehrere-klammern-eine-mit-inhalt-soll-geloscht-werden/45879/14 "2019-07-15T09:31:53Z")

</div>

OK: dein Ursprungsmuster besteht aus 3 Teilen:  
dem, was in TITLE steht, dann Klammer1 und Klammer 2.  
Dann entwirfst du einen Suchbegriff, der die gerade eingefügte Klammer1 wieder löscht?!  
Das kann man dann auch einfacher haben und einfach "Tag-Feld formatieren" wählen und (live) an den schon bestehenden String anfügen.  
Dass es kein Blank vor dem live gab, lag daran, dass das Ergebnis sowieso nur in $1 enthalten war. $2 war überflüssig. Du könntest also das Blank hinter dem Komma löschen, um eines zu behalten.  
Ich hätte jetzt vermutet, dass du als Feld nur %title% oder nur %\_filename% angibst, und die sollen durchsucht werden.  
Ich hätte also eine Aktion vom Typ "Tag-Feld formatieren" für %\_filename% erwartet,  
Format String: `$regexp(%_filename%,(.*) \(.*\) (.*),$1 $2)`

Bitte probiere etwas mit dem Ausdruck $regexp() in der Funktion Konverter\>Tag-Tag herum, um in der Vorschau die Auswirkungen deiner Änderungen gleich zu sehen, ohne sie gleich anwenden zu müssen.

---

<div class="post-metadata">

**Author:** ![system](https://community.mp3tag.de/uploads/default/original/2X/c/ce7035d426cb755a7916793326d23b465222a407.png) [@system](https://community.mp3tag.de/u/system)\
**Post date:** [March 19, 2026, 7:35pm UTC](https://community.mp3tag.de/t/mehrere-klammern-eine-mit-inhalt-soll-geloscht-werden/45879/15 "2026-03-19T19:35:08Z")

</div>

This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.
