Seite 1 von 1

RegEx: Alle Zahlen am ENDE eines Namens entfernen

Verfasst: 27. Aug 2010 14:06
von Joerg765
Hallo,

ich habe mal wieder ein RegEx-Problem.

Ich möchte alle Zahlen am ENDE eines Ordnernamens entfernen lassen.

Das geht mit dem folgenden CODE auch soweit:

Rename REGEXP PATTERN "(.+) ([0-9]*)" TO "\1"

Allerdings wird so NUR die letzte ein- oder mehrstellige Zahl entfernt, nicht aber z.B. 123 34 5656.

Wenn ich nun den CODE folgendermaßen ändere:

Rename REGEXP PATTERN "(.+) ([0-9]* [0-9]*)" TO "\1"

dann löscht er zwar die letzten beiden Zahlen, nicht aber mehr, wenn NUR eine Zahl am Ende steht.

Wie muß der CODE lauten, damit alle Zahlen am Ende entfernt werden, ob nun 12 oder 123 34 oder sogar 12 12 12 12 12 ???

Einige der Ordnernamen haben aber auch Zahlen im oder vor dem Namen, also einfach alle Zahlen entfernen geht auch nicht.

Danke schon mal, schöne Grüße, JÖRG.

Re: RegEx: Alle Zahlen am ENDE eines Namens entfernen

Verfasst: 11. Aug 2014 17:24
von botharg
Hallo!

Auch deser Thread ist eigentlich schon tot, aber da er nicht als "gelöst" markiert ist, hier eine kleine, dreckige regex-Lösung:

Code: Alles auswählen

rename regexp pattern "^(.*[^0-9 ])(.*)(\..*)$" to "\1\3"
der Ausdruck scheert sich nicht um die weitere Form:
Anfangen soll der String mit irgendwas (\1), solange, bis ein Leerzeichen mit Zahl kommt ("solange nicht Leerzeichen/Zahl") ... eigentlich eher: eine beliebige Folge aus Zahlen und Leerzeichen, die zwischen irgendwas vorn und der Dateierweiterung (\3) stehen.
Nach meinen Versuchen funktioniert das auch, wenn zwischendrin beliebige leerzeichen getrennte Zahlen enthalten sind.

NUR die Zahlen & Leerzeichen am Ende werden entfernt!
quick & dirty, jeder trägt selbst die Verantwortung für den Einsatz von scharfem regexp 8)