# Filtern nach String ohne begrenzenden white space

**URL:** <https://community.mp3tag.de/t/filtern-nach-string-ohne-begrenzenden-white-space/59945>\
**Category:** Allgemein\
**Created:** [February 4, 2023, 8:43am UTC](https://community.mp3tag.de/t/filtern-nach-string-ohne-begrenzenden-white-space/59945 "2023-02-04T08:43:02Z")\
**Posts on this page:** 13\
**Page:** 1

<div class="post-metadata">

**Author:** ![poster](https://community.mp3tag.de/user_avatar/community.mp3tag.de/poster/32/4881_2.png) [@poster](https://community.mp3tag.de/u/poster)\
**Post date:** [February 4, 2023, 8:43am UTC](https://community.mp3tag.de/t/filtern-nach-string-ohne-begrenzenden-white-space/59945/1 "2023-02-04T08:43:02Z")

</div>

Ich will nach Dateien filtern, die in UNSYNCEDLYRICS einen speziellen Text enthalten, der **nicht** unmittelbar am Anfang oder Ende an White Space angrenzt.

Beispiele:  
a_Dies ist mein gesuchter Text_[  
1_Dies ist mein gesuchter Text_$  
{Leerzeichen}_Dies ist mein gesuchter Text_c  
sollen gefunden gefunden werden.

{Leerzeichen}_Dies ist mein gesuchter Text_{LFCR}  
{TAB}_Dies ist mein gesuchter Text_  
a_Dies ist mein gesuchter Text_{LFCR}  
sollen nicht gefunden werden.

---

<div class="post-metadata">

**Author:** ![LyricsLover](https://community.mp3tag.de/letter_avatar_proxy/v4/letter/l/c6cbf5/32.png) [@LyricsLover](https://community.mp3tag.de/u/LyricsLover)\
**Post date:** [February 4, 2023, 9:38am UTC](https://community.mp3tag.de/t/filtern-nach-string-ohne-begrenzenden-white-space/59945/2 "2023-02-04T09:38:17Z")

</div>

Ist dabei  
_Dies ist mein gesuchter Text_  
fix immer gleich zwischen  
`a` und `[`  
oder  
`1` und `$`  
oder  
`Space` und `c`  
eingeklemmt oder ist der variabel?

---

<div class="post-metadata">

**Author:** ![poster](https://community.mp3tag.de/user_avatar/community.mp3tag.de/poster/32/4881_2.png) [@poster](https://community.mp3tag.de/u/poster)\
**Post date:** [February 4, 2023, 9:46am UTC](https://community.mp3tag.de/t/filtern-nach-string-ohne-begrenzenden-white-space/59945/3 "2023-02-04T09:46:59Z")

</div>

Dieser Text ist immer gleich. Die `a und [`, `1 und $` usw. sind aber nur Beispiele für "Kein White space" und natürlich variabel.

Der Hintergrund ist: Ich habe einen ungewollten Text mitten in Songtexten, den ich bei Vorliegen der genannten Filterkriterien ohne vorheriges Anschauen automatisch per Aktion entfernen kann. Wenn allerdings vor oder nach dem Text White Space kommt, kann ich nur noch manuell arbeiten und muss mir alles genau ansehen.

---

<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:** [February 4, 2023, 9:59am UTC](https://community.mp3tag.de/t/filtern-nach-string-ohne-begrenzenden-white-space/59945/4 "2023-02-04T09:59:30Z")

</div>

Funktioniert sowas?  
%unsnycnedlyrics% MATCHES `"[^\s*]Dies ist mein gesuchter Text[^\s*]"`

---

<div class="post-metadata">

**Author:** ![poster](https://community.mp3tag.de/user_avatar/community.mp3tag.de/poster/32/4881_2.png) [@poster](https://community.mp3tag.de/u/poster)\
**Post date:** [February 4, 2023, 10:11am UTC](https://community.mp3tag.de/t/filtern-nach-string-ohne-begrenzenden-white-space/59945/5 "2023-02-04T10:11:16Z")

</div>

Nein. Bekomme damit kein positives Suchergebnis.

---

<div class="post-metadata">

**Author:** ![LyricsLover](https://community.mp3tag.de/letter_avatar_proxy/v4/letter/l/c6cbf5/32.png) [@LyricsLover](https://community.mp3tag.de/u/LyricsLover)\
**Post date:** [February 4, 2023, 10:58am UTC](https://community.mp3tag.de/t/filtern-nach-string-ohne-begrenzenden-white-space/59945/6 "2023-02-04T10:58:43Z")

</div>

Und wenn Du nur nach Vorkommen suchst, wenn der fixe Text mit einem der abschliessenden Zeichen [ $ c aufhört?

`%UNSYNCEDLYRICS% MATCHES Dies ist mein gesuchter Text[\[|\$|c]$`

In meinen Tests - die niemals alle erdenklichen Varianten enthalten können - funktioniert es dann auch mit (eigentlich nicht zwingend nötiger) führender Zeichenauswahl:  
`%UNSYNCEDLYRICS% MATCHES ^[a|1|\s]Dies ist mein gesuchter Text[\[|\$|c]$`

---

<div class="post-metadata">

**Author:** ![poster](https://community.mp3tag.de/user_avatar/community.mp3tag.de/poster/32/4881_2.png) [@poster](https://community.mp3tag.de/u/poster)\
**Post date:** [February 4, 2023, 11:52am UTC](https://community.mp3tag.de/t/filtern-nach-string-ohne-begrenzenden-white-space/59945/7 "2023-02-04T11:52:10Z")

</div>

Ich habe die Ausdrücke mal auf eine Datei angewandt und festgestellt, dass sie nicht klappen.

Da ich mit regulären Ausdrücken nach wie vor auf Kriegsfuss stehe und eigentlich nichts ins Langzeitgedächtnis bekomme, wäre es nett, wenn Du den Ausdruck mal erklären könntest.

Ich habe nämlich den Verdacht, dass wir uns missverstehen. Deshalb nochmal eine Darstellung meinerseits:  
In UNSYNCEDLYRICS steht bei mir bei unzähligen Dateien ein konstanter Text "Dies ist mein gesuchter Text", der nicht zum Songtext gehört sondern durch eine Websource eingestreut wurde. In den meisten Fällen ist dieser Text alleine ohne weiter folgenden unerwünschten Text in den Fliesstext des Songs eingestreut. Wenn das so ist, kann ich ihn einfach mit einer Replace-Aktion ersetzen.  
Es gibt aber auch viele Fälle, in denen weiterer unerwünschter Text folgt, der variabel ist und nach dem ich deshalb nicht suchen kann.

Nun habe ich festgestellt, dass in den Fällen in denen "Dies ist mein gesuchter Text" **alleine steht und kein weiterer variabler ungewünschter Text folgt** , dieser immer direkt in den Fließtext eingebettet ist ohne dass am Anfang oder am Ende jegliche Art von white space ihn vom übrigen Songtext abgrenzt.

Beispiel:  
I Love you more than_Dies ist mein gewünschter Text_I can tell

In allen übrigen Fällen, in denen vor oder nach dieser Textpassage white space auftritt folgt, wie ich festgestellt habe, **immer** weiterer variabler unerwünschter Text, den ich nie mehr (außer durch Durchlesen aller Lyrics) finden könnte, wenn ich generell "Dies ist mein gesuchter Text" löschen würde.

Ich muss also zunächst die Fälle finden, bei denen "Dies ist mein gewünschter Text" ohne White-space-Abgrenzung vorkommt, um den Text in diesen Dateien durch Aktion zu löschen. Ein nächster Schritt wäre dann nochmals nach der Textpassage zu filtern und die verbliebenen Dateien einzeln manuell zu korrigieren.

---

<div class="post-metadata">

**Author:** ![LyricsLover](https://community.mp3tag.de/letter_avatar_proxy/v4/letter/l/c6cbf5/32.png) [@LyricsLover](https://community.mp3tag.de/u/LyricsLover)\
**Post date:** [February 4, 2023, 12:10pm UTC](https://community.mp3tag.de/t/filtern-nach-string-ohne-begrenzenden-white-space/59945/8 "2023-02-04T12:10:50Z")

</div>

> [@poster](#):
>
> Da ich mit regulären Ausdrücken nach wie vor auf Kriegsfuss stehe und eigentlich nichts ins Langzeitgedächtnis bekomme, wäre es nett, wenn Du den Ausdruck mal erklären könntest.

Erklärung für:  
`^[a|1|\s]Dies ist mein gesuchter Text[\[|\$|c]$`

 ![image](https://community.mp3tag.de/uploads/default/original/2X/f/fa7fbea1a93eb7d4f849d6b4c980aadd87b69a3f.png)

Am Anfang der Zeile muss entweder a oder 1 oder ein Leerzeichen stehen  
dann muss "Dies ist mein gesuchter Text" folgen  
am Ende der Zeile muss dann [ oder $ oder c stehen.

* * *

Du kannst ja mal versuchen, eine Text-Erklärung zusammenzustellen, wie das Deiner Meinung nach funktionieren könnte.  
Dann können wir versuchen, einen regulären Ausdruck daraus zu erstellen.

---

<div class="post-metadata">

**Author:** ![poster](https://community.mp3tag.de/user_avatar/community.mp3tag.de/poster/32/4881_2.png) [@poster](https://community.mp3tag.de/u/poster)\
**Post date:** [February 4, 2023, 12:47pm UTC](https://community.mp3tag.de/t/filtern-nach-string-ohne-begrenzenden-white-space/59945/9 "2023-02-04T12:47:50Z")

</div>

> [@LyricsLover](#):
>
> Am Anfang der Zeile muss entweder a oder 1 oder ein Leerzeichen stehen  
> dann muss "Dies ist mein gesuchter Text" folgen  
> am Ende der Zeile muss dann [ oder $ oder c stehen.

Mein Verdacht hat sich bestätigt, dass wir uns völlig missverstanden haben, weil Du in meinen Beispielen, die genannten Zeichen (a,1,$,c..) für Konstanten gehalten hast. Auch der Zeilenanfang überhaupt spielt keine Rolle.  
Es geht nur darum Dateien zu filtern, bei denen die Textstelle "Dies ist mein gesuchter Text" direkt vor **oder** nachher ohne trennenden white-space (CRLF, Space,TAB...) direkt von weiterem Text eingerahmt wird.

Siehe mein obiges Beispiel:  
I love you more than_Dies ist mein gewünschter Text_I can tell

---

<div class="post-metadata">

**Author:** ![LyricsLover](https://community.mp3tag.de/letter_avatar_proxy/v4/letter/l/c6cbf5/32.png) [@LyricsLover](https://community.mp3tag.de/u/LyricsLover)\
**Post date:** [February 4, 2023, 1:19pm UTC](https://community.mp3tag.de/t/filtern-nach-string-ohne-begrenzenden-white-space/59945/10 "2023-02-04T13:19:23Z")

</div>

Wie ist es damit:

`%UNSYNCEDLYRICS% MATCHES [\S]Dies ist mein gesuchter Text[\S]`

 ![image](https://community.mp3tag.de/uploads/default/original/2X/e/e80ed6712a7a373973c4e64d41059b216da0c1e9.png)

Der reguläre Ausdruck `[\S]` (GROSSES S) ist gleichbedeutend wie `[^\r\n\t\f\v]`, matcht auf alles, was KEIN White Space ist (das beinhaltet auch CR, LF, Tab, FormFeed, Vertical White Space).

---

<div class="post-metadata">

**Author:** ![poster](https://community.mp3tag.de/user_avatar/community.mp3tag.de/poster/32/4881_2.png) [@poster](https://community.mp3tag.de/u/poster)\
**Post date:** [February 4, 2023, 1:37pm UTC](https://community.mp3tag.de/t/filtern-nach-string-ohne-begrenzenden-white-space/59945/11 "2023-02-04T13:37:52Z")

</div>

Danke. Das klappt prinzipiell. Auf \S (negiertes \s) hätte ich auch selber kommen können, weil ich es vor Jahren schon mal benutzt habe. Leider vergesse ich alles was ich nicht ständig benutze.  
Lässt sich das auf das erwähnte " **oder**" einschränken?  
Es treten Fälle auf, bei denen vor **und** nachher kein white space auftritt, aber auch Fälle bei denen nur vorher und nur nachher kein white space auftritt.  
Ansonsten kann ich natürlich auch den Ausdruck 2 x nacheinander verändert anwenden.

---

<div class="post-metadata">

**Author:** ![LyricsLover](https://community.mp3tag.de/letter_avatar_proxy/v4/letter/l/c6cbf5/32.png) [@LyricsLover](https://community.mp3tag.de/u/LyricsLover)\
**Post date:** [February 4, 2023, 1:50pm UTC](https://community.mp3tag.de/t/filtern-nach-string-ohne-begrenzenden-white-space/59945/12 "2023-02-04T13:50:15Z")

</div>

> [@poster](#):
>
> Lässt sich das auf das erwähnte " **oder**" einschränken?

Theoretisch schon, aber das wird sehr aufwändig mit Positive oder Negative Lookaheads/Lookbehinds. Das ist IMHO aber kaum mehr verständlich und nachvollziehbar (in ein paar Monaten oder Jahren schon gar nicht mehr).

Ich empfehle, die Varianten einzeln und nacheinander zu probieren.

---

<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 6, 2023, 1:50pm UTC](https://community.mp3tag.de/t/filtern-nach-string-ohne-begrenzenden-white-space/59945/13 "2023-03-06T13:50:17Z")

</div>

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