$regxp

Hallo mp3tag Freunde,

nachdem ich mich jetzt nach Jahren der Nutzung von MP3tag auch mal an die Regular Expressions gewagt habe, und dabei bin meine MP3 Sammlung noch ein bisschen perfekter zu machen bin ich mittlerweile seit Stunden dabei dies und das mit Script zu erledigen.

Mach mal wollte ich schon verzweifeln, aber irgendwie kam dann doch der Gedankenblitz und ich hatte Erfolg :slight_smile:

Nur leider scheitere ich momentan an einem Problem wo ich jetzt leider nicht mehr weiterkomme.

Ich denke hier ist bestimmt jemand der das ganz locker aus dem Ärmel schüttelt. Ich wäre dafür sehr dankbar :slight_smile: .. das Regular Expression ist halt erst mal eine sehr eigene Sprache und ich kann das leider nur mit vielen Beispielen mir beibringen und dazu suche ich natürlich auch praktische Beispiele. Lerning by Doing :smiley: wie es so schön heißt ...

Also hier nun mein Problem:

Ich habe ein Dateiname oder Verzeichnis (dürfte aber egal sein) mit folgendem Inhalt

'aaaa bbbb cccc ddddd Disc 10 eeee ffff gggg.mp3'

oder auch Verzeichnis (was mit %FILENAME% oder %_DIRECTORY% egal sein dürfte)

Ich möchte nun gerne "Disc 10" mit $regexp aufgreifen und durch "(Disc 10)" ersetzen. Wobei hier zu beachten ist, das die "10" variabel ist. Die Stelle an der die beiden Werte vorkommen ist zwar identisch aber sollte auch flexibel sein.

Bisher hab ich folgenden String ausprobiert bzw. hier hänge ich ..

"\sDisc...." dadurch kann ich zu mindestens schon mal den Ausdruck identifizieren. Ich hätte das jetzt gerne in eine Variable gepackt und diese dann mit () umpackt und ausgespuckt .. und da hängts .. mit $regexp müsste es aber gehen wenn ich mich nicht irre

.. mit () kann ich das in den Speicher schmeißen und wieder verwenden .. nur wie ?

Für jeden Tipp besten Dank

Grüße
Anakim :smiley:

So sollte es funktionieren:
$regexp(%field%,(.) (Disc \d) (.*),'('$2')')

Hi,

der String von newser liedert nur das (Disc xx). Wenn du die anderen Teile wieder dazu haben möchtest, musst du folgenden String verwenden:

$regexp(%field%,(.) (Disc \d) (.*),$1 '('$2')' $3)

Die Klammern kannst du mit der Position und einem "$" davor ansprechen.

mfG
gnor

Danke euch beiden,

da sieht doch schon mal ganz gut aus .. wenn mans sieht dann ist es irgendwie alles logisch :slight_smile:

Falls es nicht funktioniert werde ich mich noch mal melden, ansonsten herzlichen Dank.

Grüße
Anakim