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

**URL:** https://community.mp3tag.de/t/ersetzen-mit-regularen-ausdrucken-probiert-leider-ohne-erfolg/6923
**Category:** Allgemein
**Created:** [June 8, 2008, 3:28pm UTC](https://community.mp3tag.de/t/ersetzen-mit-regularen-ausdrucken-probiert-leider-ohne-erfolg/6923 "2008-06-08T15:28:18Z")
**Posts on this page:** 8
**Page:** 1

<div class="post-metadata">

### Author: ![heisubo](https://community.mp3tag.de/user_avatar/community.mp3tag.de/heisubo/32/218_2.png) [@heisubo](https://community.mp3tag.de/u/heisubo)
#### Post date: [June 8, 2008, 3:28pm UTC](https://community.mp3tag.de/t/ersetzen-mit-regularen-ausdrucken-probiert-leider-ohne-erfolg/6923/1 "2008-06-08T15:28:18Z")

</div>

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?

---

<div class="post-metadata">

### Author: ![anon40879270](https://community.mp3tag.de/letter_avatar_proxy/v4/letter/a/8797f3/32.png) [@anon40879270](https://community.mp3tag.de/u/anon40879270)
#### Post date: [June 8, 2008, 5:56pm UTC](https://community.mp3tag.de/t/ersetzen-mit-regularen-ausdrucken-probiert-leider-ohne-erfolg/6923/2 "2008-06-08T17:56:07Z")

</div>

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

---

<div class="post-metadata">

### Author: ![heisubo](https://community.mp3tag.de/user_avatar/community.mp3tag.de/heisubo/32/218_2.png) [@heisubo](https://community.mp3tag.de/u/heisubo)
#### Post date: [June 8, 2008, 6:12pm UTC](https://community.mp3tag.de/t/ersetzen-mit-regularen-ausdrucken-probiert-leider-ohne-erfolg/6923/3 "2008-06-08T18:12:49Z")

</div>

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%

---

<div class="post-metadata">

### Author: ![anon40879270](https://community.mp3tag.de/letter_avatar_proxy/v4/letter/a/8797f3/32.png) [@anon40879270](https://community.mp3tag.de/u/anon40879270)
#### Post date: [June 8, 2008, 8:09pm UTC](https://community.mp3tag.de/t/ersetzen-mit-regularen-ausdrucken-probiert-leider-ohne-erfolg/6923/4 "2008-06-08T20:09:21Z")

</div>

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

---

<div class="post-metadata">

### Author: ![DetlevD](https://community.mp3tag.de/user_avatar/community.mp3tag.de/detlevd/32/123_2.png) [@DetlevD](https://community.mp3tag.de/u/DetlevD)
#### Post date: [June 9, 2008, 4:12am UTC](https://community.mp3tag.de/t/ersetzen-mit-regularen-ausdrucken-probiert-leider-ohne-erfolg/6923/5 "2008-06-09T04:12:22Z")

</div>

> [@heisubo](#):
>
> ... Felder anhängen, aber nur wenn diese NICHT leer sind. ...

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

DD.20080609.0812.CEST

---

<div class="post-metadata">

### Author: ![heisubo](https://community.mp3tag.de/user_avatar/community.mp3tag.de/heisubo/32/218_2.png) [@heisubo](https://community.mp3tag.de/u/heisubo)
#### Post date: [June 9, 2008, 11:56am UTC](https://community.mp3tag.de/t/ersetzen-mit-regularen-ausdrucken-probiert-leider-ohne-erfolg/6923/6 "2008-06-09T11:56:26Z")

</div>

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

---

<div class="post-metadata">

### Author: ![DetlevD](https://community.mp3tag.de/user_avatar/community.mp3tag.de/detlevd/32/123_2.png) [@DetlevD](https://community.mp3tag.de/u/DetlevD)
#### Post date: [June 9, 2008, 3:42pm UTC](https://community.mp3tag.de/t/ersetzen-mit-regularen-ausdrucken-probiert-leider-ohne-erfolg/6923/7 "2008-06-09T15:42:50Z")

</div>

> [@heisubo](#):
>
> ...  
> Aus %album%  
> Dies ist kein Liebeslied; gelesen von Nina Petri, CD 2  
> ...  
> Die fliegenden Sterne, Pater Brown; gelesen von Peer Augusinski, Volker Brandt u.a
> 
> soll werden  
> Dies ist kein Liebeslied, CD 2  
> ...  
> Die fliegenden Sterne, Pater Brown
> 
> ...  
> Regulärer Ausdruck: (.+); gelesen von (.+), (.+)  
> ...  
> Wo liegt der Fehler?

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

---

<div class="post-metadata">

### Author: ![heisubo](https://community.mp3tag.de/user_avatar/community.mp3tag.de/heisubo/32/218_2.png) [@heisubo](https://community.mp3tag.de/u/heisubo)
#### Post date: [July 24, 2008, 9:01am UTC](https://community.mp3tag.de/t/ersetzen-mit-regularen-ausdrucken-probiert-leider-ohne-erfolg/6923/8 "2008-07-24T09:01:02Z")

</div>

> [@DetlevD](#):
>
> in der Funktion $regexp()  
> DD.20080609.1942.CEST

Danke!
