Forum: PC-Programmierung Regulärer Ausdruck:


von Walter Tarpan (Gast)


Lesenswert?

Hallo zusammen,

ich will ein paar Zeichenketten manipulieren. Aus Zeichenketten vom Typ
 "IMG_1234.jpg"
sollen neue Zeichenketten vom Typ
 "DST_A01234.jpg"
entstehen.

Quell- und Zielname sollen über eine Ini-Datei konfigurierbar bleiben.

Mein erster Ansatz mit regulären Ausdrücken in Python:
1
srcName=r'IMG_(\d{4})\.(JPG|jpg)'
2
dstSchem='DST_A0$1.JPG'
3
4
file = 'IMG_1234.jpg'
5
n = re.sub(srcName, dstSchem, file)

Führt nicht zum gewünschten Ergebnis. Das $1 wird nicht als ersetzende 
Zeichenkette interpretiert.

Wer kann mir auf die Sprünge helfen?

Viele Grüße
W.T.

Beitrag #5679359 wurde vom Autor gelöscht.
von Rolf M. (rmagnus)


Lesenswert?

Walter Tarpan schrieb:
> file = 'IMG_1234.jpg'
> n = re.sub(srcName, dstSchem, file)
>
> Führt nicht zum gewünschten Ergebnis. Das $1 wird nicht als ersetzende
> Zeichenkette interpretiert.

Es heißt \1, nicht $1.

von Walter Tarpan (Gast)


Lesenswert?

DANKE!

Habe den Wald vor lauter Bäumen nicht mehr gesehen. $1 ist 
Matlab-Regexp.

von WR (Gast)


Lesenswert?

Hallo Walter,
in der Command Shell geht's so:

setlocal enabledelayedexpansion
for /f %%i in ('dir /b IMG_*.jpg') do (
  set old=%%i
  set new=!old:IMG_=DST_A0!
  ren !old! !new!
  )

Gruß
WR

von /bin/weg (Gast)


Lesenswert?

Gibt dutzende Mglkt, die je nach OS vermutlich kürzeste

rename IMG_ DST_A0 IMG*

von Walter Tarpan (Gast)


Lesenswert?

Ich will das aber gar nicht über die Kommandozeile machen. Ich will es 
in Python machen. Und es funktioniert auch. Alles ist gut.

von /bin/weg (Gast)


Lesenswert?

Nö keiner weis womit und worauf du Dateien umbenennen willst.

Ldgl "IMG_1234.jpg" sollen neue Zeichenketten vom Typ "DST_A01234.jpg" 
werden, den Rest kennst nur du und der Leser darf wie immer spekulieren.

> Und es funktioniert auch. Alles ist gut.

Na dann ist doch Gut.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.