Regex - Frage

Gast #6478691
Lesenswert?

Hallo,

ich habe folgende Frage:
Eine Menge Files, deren Filenamen folgendermaßen aufgebaut sind,
möchte ich gern umbenennen und suche dafür die passende RegEx.

a03cdefxvdabc.txt

Der Teil vor dem Punkt ist beliebig lang. Davon möchte ich die letzten
drei Zeichen entfernen (hier "abc", beliebige Zeichen). Die Endung
(hier .txt) soll erhalten bleiben.

Der Filename soll also dann so aussehen:
a03cdefxvd.txt

Hab auch schon auf regex101.com experimentiert, habe aber keine
Lösung gefunden.
Meine Idee:
(.+)(...)(.txt)
eine beliebige Anzahl Zeichen (mindestens 1)
dann drei beliebige Zeichen
dann die Endung .txt

Wie finde ich die ersten Zeichen (ausser den letzten drei),
gefolgt von der Endung?

Kann mir jemand einen Hinweis geben? Ist bestimmt einfach,
aber ich komm nicht drauf.
Gast #6478721
Lesenswert?

Soeren K. schrieb:
> (.*)(.{3})\.(.*)
>
> Liefert Dir drei Gruppen. Wenn du Gruppen nicht brauchst, entferne
> einfach die Klammern drumrum.

Vielen Dank!
Ich habe jetzt auch meinen Denkfehler (bzw. mein Unwissen) gefunden.
Die Ersetzungszeichenkette muss bei deiner Regex lauten $1\.$3
und in meiner Variante einfach $1$3
Das mit den Gruppen-Nummern wusste ich noch nicht.
So ist das eben, wenn man sich das erste Mal damit beschäftigt.

Also vielen Dank nochmal, ich habe etwas gelernt :-)

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren