# Einzelne Zeilen mit bestimmter Zeichenfolge aus Multiline Feld löschen

**URL:** <https://community.mp3tag.de/t/einzelne-zeilen-mit-bestimmter-zeichenfolge-aus-multiline-feld-loschen/15868>\
**Category:** Allgemein\
**Created:** [July 1, 2014, 11:23pm UTC](https://community.mp3tag.de/t/einzelne-zeilen-mit-bestimmter-zeichenfolge-aus-multiline-feld-loschen/15868 "2014-07-01T23:23:42Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![seppl](https://community.mp3tag.de/letter_avatar_proxy/v4/letter/s/59ef9b/32.png) [@seppl](https://community.mp3tag.de/u/seppl)\
**Post date:** [July 1, 2014, 11:23pm UTC](https://community.mp3tag.de/t/einzelne-zeilen-mit-bestimmter-zeichenfolge-aus-multiline-feld-loschen/15868/1 "2014-07-01T23:23:42Z")

</div>

Aus dem Lyrics Feld möchte ich bestimmte Zeilen löschen, z.B.:

Aus

```
[ti:Four Letter Word]
[ar:Beady Eye]
[by:é¾™æˆ˜å¤©ä¸‹]
[offset:-100]

[00:00.00]Beady Eye - Four Letter Word
[00:03.62][00:10.73][00:17.37][00:30.66][00:37.29][00:43.89][00:49.95][00:59.39][01:15.98][01:58.25][02:05.21][02:11.97][02:18.29][02:27.57][02:44.13][02:53.60][03:10.10][03:16.63][03:23.61][03:29.76] 
[00:05.79]Lyrics: Liam Gallagher, Gem Archer, Andy Bell
[00:07.80]Composer: Andy Bell, Gem Archer, Liam Gallagher
[00:13.43]lrc by é¾™æˆ˜å¤©ä¸‹QQ393398507
[00:26.87]Sleepwalk away the life
[00:28.38]If that turns you on
[00:33.35]It's only a moment
[00:34.51]Walk away and it's gone
[00:39.25]It's about time

```

soll

```
[ti:Four Letter Word]
[ar:Beady Eye]
[offset:-100]

[00:00.00]Beady Eye - Four Letter Word
[00:03.62][00:10.73][00:17.37][00:30.66][00:37.29][00:43.89][00:49.95][00:59.39][01:15.98][01:58.25][02:05.21][02:11.97][02:18.29][02:27.57][02:44.13][02:53.60][03:10.10][03:16.63][03:23.61][03:29.76] 
[00:05.79]Lyrics: Liam Gallagher, Gem Archer, Andy Bell
[00:07.80]Composer: Andy Bell, Gem Archer, Liam Gallagher
[00:26.87]Sleepwalk away the life
[00:28.38]If that turns you on
[00:33.35]It's only a moment
[00:34.51]Walk away and it's gone
[00:39.25]It's about time

```

werden, also die Zeilen

[by:é¾™æˆ˜å¤©ä¸‹]

und

[00:13.43]lrc by é¾™æˆ˜å¤©ä¸‹QQ393398507

sollen entfernt werden.

Ich hab folgendes versucht:

$regexp(%lyrics%,'._(by:|lrc by)._\r\n',)

Funktioniert aber nicht, weil damit jede Zeile bis auf die letzte entfernt wird. Weiß jemand, wo der Fehler liegt?

Ich hab es mit [regexr.com](http://regexr.com) getestet, dort funktioniert es, wenn ich \r weglasse:

 ![](http://i.imgur.com/tk4dyLw.jpg)

---

<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 2, 2014, 4:36am UTC](https://community.mp3tag.de/t/einzelne-zeilen-mit-bestimmter-zeichenfolge-aus-multiline-feld-loschen/15868/2 "2014-07-02T04:36:22Z")

</div>

> [@seppl](#):
>
> ...
> 
> Ich hab folgendes versucht:
> 
> $regexp(%lyrics%,'._(by:|lrc by)._\r\n',)  
> ...

Und wenn du  
Suchen (._)._(by:|lrc by)._\r\n(._)  
Ersetzen $1$2  
probierst?

---

<div class="post-metadata">

**Author:** ![seppl](https://community.mp3tag.de/letter_avatar_proxy/v4/letter/s/59ef9b/32.png) [@seppl](https://community.mp3tag.de/u/seppl)\
**Post date:** [July 2, 2014, 8:03am UTC](https://community.mp3tag.de/t/einzelne-zeilen-mit-bestimmter-zeichenfolge-aus-multiline-feld-loschen/15868/3 "2014-07-02T08:03:26Z")

</div>

> [@ohrenkino](#):
>
> Und wenn du  
> Suchen (._)._(by:|lrc by)._\r\n(._)  
> Ersetzen $1$2  
> probierst?

Dann bleibt nur noch das übrig:

```
[ti:Four Letter Word]
[ar:Beady Eye]
[by:é¾™æˆ˜å¤©ä¸‹]
[offset:-100]

[00:00.00]Beady Eye - Four Letter Word
[00:03.62][00:10.73][00:17.37][00:30.66][00:37.29][00:43.89][00:49.95][00:59.39][01:15.98][01:58.25][02:05.21][02:11.97][02:18.29][02:27.57][02:44.13][02:53.60][03:10.10][03:16.63][03:23.61][03:29.76] 
[00:05.79]Lyrics: Liam Gallagher, Gem Archer, Andy Bell
[00:07.80]Composer: Andy Bell, Gem Archer, Liam Gallagher
[00:13.43]lrc by

```

---

<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 2, 2014, 9:43am UTC](https://community.mp3tag.de/t/einzelne-zeilen-mit-bestimmter-zeichenfolge-aus-multiline-feld-loschen/15868/4 "2014-07-02T09:43:43Z")

</div>

QUOTE (seppl @ Jul 2 2014, 12:03) \<{POST\_SNAPBACK}\>

Dann bleibt nur noch das übrig:

```
[ti:Four Letter Word]
[ar:Beady Eye]
[by:é¾™æˆ˜å¤©ä¸‹]
[offset:-100]

[00:00.00]Beady Eye - Four Letter Word
[00:03.62][00:10.73][00:17.37][00:30.66][00:37.29][00:43.89][00:49.95][00:59.39][01:15.98][01:58.25][02:05.21][02:11.97][02:18.29][02:27.57][02:44.13][02:53.60][03:10.10][03:16.63][03:23.61][03:29.76] 
[00:05.79]Lyrics: Liam Gallagher, Gem Archer, Andy Bell
[00:07.80]Composer: Andy Bell, Gem Archer, Liam Gallagher
[00:13.43]lrc by<!--QuoteEnd--></div><!--QuoteEEnd-->

```

Dann probier mal für das erste  
$regexp(%comment%,'[by.\*\r\n([off)',$1)  
.

Da lrc Keinen vernünftigen Begrenzer am Ende hat, wird das schwierig. Oder ist das immer die 4. oder 5. Zeile von hinten?

---

<div class="post-metadata">

**Author:** ![seppl](https://community.mp3tag.de/letter_avatar_proxy/v4/letter/s/59ef9b/32.png) [@seppl](https://community.mp3tag.de/u/seppl)\
**Post date:** [July 2, 2014, 7:07pm UTC](https://community.mp3tag.de/t/einzelne-zeilen-mit-bestimmter-zeichenfolge-aus-multiline-feld-loschen/15868/5 "2014-07-02T19:07:48Z")

</div>

> [@ohrenkino](#):
>
> Dann probier mal für das erste  
> $regexp(%comment%,'[by.\*\r\n([off)',$1)  
> .

Das funktioniert, allerdings möchte ich die Zeile nur anhand der darin vorkommenden Zeichen entfernen, ohne Bezug auf die nächste Zeile.

> [@ohrenkino](#):
>
> Da lrc Keinen vernünftigen Begrenzer am Ende hat, wird das schwierig. Oder ist das immer die 4. oder 5. Zeile von hinten?

Nein, die Position der Zeile sollte egal sein.

Ich habe jetzt zum Testen diesen Text genommen:

abc def  
ghi jkl  
mno pqr  
stu vwx  
yz

Ich möchte die Zeile "mno pqr" anhand der Zeichenkette "no" erkennen und dann diese Zeile löschen.

Das Erkennen der Zeile müsste entweder so:

._no._\n

oder so:

^._no._$\n/m

funktionieren, zumindest klappt das in mehreren Regex-Testern so.

Nur in mp3tag sehen die Ergebnisse anders aus:

$regexp(%lyrics%,._no._\n,)  
Ergebnis:  
yz

$regexp(%lyrics%,^._no._$\n/m,)  
Ergebnis:  
abc def  
ghi jkl  
mno pqr  
stu vwx  
yz

$regexp(%lyrics%,\n._no._\n,)  
Ergebnis:  
abc def  
yz

Der reguläre Ausdruck umfasst in mp3tag also anscheinend nicht nur die "nächstgelegenen" linefeeds, sondern den ganzen Bereich vom ersten bis zum letzten linefeed des Textes.  
Gibt es also einen Ausdruck, mit dem ich sagen kann:  
Finde "no", und zusätzlich alle Zeichen vorher bis zum vorherigen Zeilenumbruch und alle Zeichen danach bis zum nächsten Zeilenumbruch?

Wie gesagt, mit Regex-Testern wie [http://www.regexr.com/](http://www.regexr.com/) funktioniert das ganz einfach. Sind in mp3tag vielleicht irgendwelche flags standardmäßg aktiviert, die ich noch deaktivieren muss?

---

<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 3, 2014, 3:18am UTC](https://community.mp3tag.de/t/einzelne-zeilen-mit-bestimmter-zeichenfolge-aus-multiline-feld-loschen/15868/6 "2014-07-03T03:18:55Z")

</div>

> [@seppl](#):
>
> Das funktioniert, allerdings möchte ich die Zeile nur anhand der darin vorkommenden Zeichen entfernen, ohne Bezug auf die nächste Zeile.

Das funktioniert dann nicht.  
...

> [@](#):
>
> Nur in mp3tag sehen die Ergebnisse anders aus:

MP3tags reguläre Ausdrücke sind gierig. Und deshalb versuchen die einen so großen Bereich zu nehmen, wie möglich.  
Um den einzugrenzen, müsstest du ein eindeutiges Muster definieren. Das scheint nicht zu gehen, da nicht klar ist, welche Daten das Suchmuster begrenzen.  
Wenn deine Tester sich umschalten lassen auf "gierig", sollte es auch dort nicht mehr funktionieren.

---

<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:** [July 3, 2014, 7:22am UTC](https://community.mp3tag.de/t/einzelne-zeilen-mit-bestimmter-zeichenfolge-aus-multiline-feld-loschen/15868/7 "2014-07-03T07:22:34Z")

</div>

> [@seppl](#):
>
> Aus dem Lyrics Feld möchte ich bestimmte Zeilen löschen ...

Vielleicht ...

**$regexp(%TEST%,'(\r\*\n)\*[^\r\n]\*(item)[^\r\n]\*(\r\*\n)\*','\r\n')** 

**```
                             <!--coloro:#000000--><span style="color:#000000"><!--/coloro-->----<!--colorc--></span><!--/colorc--></b><!--fontc--></span><!--/fontc--><!--sizec--></span><!--/sizec-->**

**```**

 

DD.20140703.1122.CEST

---

<div class="post-metadata">

**Author:** ![seppl](https://community.mp3tag.de/letter_avatar_proxy/v4/letter/s/59ef9b/32.png) [@seppl](https://community.mp3tag.de/u/seppl)\
**Post date:** [July 3, 2014, 9:33am UTC](https://community.mp3tag.de/t/einzelne-zeilen-mit-bestimmter-zeichenfolge-aus-multiline-feld-loschen/15868/8 "2014-07-03T09:33:57Z")

</div>

> [@DetlevD](#):
>
> Vielleicht ...
> 
> **$regexp(%TEST%,'(\r\*\n)\*[^\r\n]\*(item)[^\r\n]\*(\r\*\n)\*','\r\n')** 
> 
> **```
> <!--coloro:#000000--><span style="color:#000000"><!--/coloro-->----<!--colorc--></span><!--/colorc--></b><!--fontc--></span><!--/fontc--><!--sizec--></span><!--/sizec-->**
> 
> **```**
> 
>  
> 
> DD.20140703.1122.CEST

 

Vielen Dank, Detlev, das funktioniert tatsächlich! Ich weiß nicht wie, aber es funktioniert 😃  
Und mit (item1|item2|item3) lässt sich ein Feld nach verschiedenen Ausdrücken durchsuchen und diese Zeilen werden dann entfernt. Perfekt 🙂
