RegEx & Multi-Rename

German support forum

Moderators: Hacker, Stefan2, white

Post Reply
habla
Junior Member
Junior Member
Posts: 19
Joined: 2004-08-28, 23:08 UTC

RegEx & Multi-Rename

Post by *habla »

Hi,
ich will Dateien mit Punkten anstatt Leerzeichen so umbenennen, das alle Punkte außer der letzte (von der Dateiendung) weg sind.

Beispiel:

Statistik.14.05.28.pdf

wird zu:

Statistik 14 05 28.pdf

Bisher brauche ich dazu 2 Schritte.

1. Search & Replace von Punkt durch Space
2. Multirename Regex (OHNE Die Anführungsstriche!!)
Search:" ([^ ]{0,}$)" Replace:".$1"

So, jetzt die Frage, weiß jemand eine Methode, das in EINEM Schritt zu machen?

Thx!
User avatar
van Dusen
Power Member
Power Member
Posts: 684
Joined: 2004-09-16, 19:30 UTC
Location: Sinzig (Rhein), Germany

Post by *van Dusen »

Im MUT:

Umbenennmaske
  • Dateiname: [N]°
    Erweiterung: [E]
Suchen & Ersetzen
  • Suchen nach: .|°<leer>
    Ersetzen durch: <leer>|.
RegEx [ ]

Hinweise:

* Statt des Zeichens <°> kannst Du ein beliebiges gemäß den Dateinamenskonventionen zulässiges Zeichen nehmen. Es sollte ein Zeichen sein, welches mit hoher Wahrscheinlichkeit nicht in den umzubenennenden Dateinamen vorkommt.

* Statt "<leer>" ein Leerzeichen eingeben

* Die CheckBox RegEx nicht setzen
habla
Junior Member
Junior Member
Posts: 19
Joined: 2004-08-28, 23:08 UTC

Post by *habla »

Hi van Dusen,
ein Wort nur... genial! Sonderzeichen dorthin, wo man den Punkt haben will, und dann Search & Replace. ...an das vordere Namensfeld habe ich nie gedacht. Besten Dank!

Eine weitere Frage hätte ich noch, ich hoffe es ist ok wenn ich die gleich hinterherknalle ;)

Ich will in einer Menge unterschiedlich benannter Dateien mit Komma getrennte Namen <Nachname>, <Vorname> umwandeln in <Vorname> <Nachname>

Die Dateien unterliegen dabei schon gewissen Konventionen, Wörter sind durch ein Leerzeichen getrennt, Aufeinanderfolgende Namen sind durch ein & gekennzeichnet, und Abtrennung zum Titel erfolgt mit einem Trennstrich.

Hier ein paar Beispiele:

Meier, Karl - Tagesbericht.pdf
Müller, Peter & Meier, Karl - Gesammelte Berichte.pdf
Müller, Peter & Meier, Lutz Ulf - Gesammelte Berichte.pdf
Schultze, Anja & Kohl, Klaus & Liebknecht, Oliver - Anthologie 05 - Index.pdf
Weber, Karl Maria - Biografie.pdf

Ich will also möglichst sämtliche denkbare Kombinationen mit doppelten Vornamen und mehrfachen Autoren erfassen.

Zur Zeit mache ich folgendes:

(.*), (.*) - (.*) -----> $2, $1 - $3
(.*), (.*) & (.*), (.*) - (.*) - (.*) -----> $2 $1 & $4 $3 - $5 - $6

Da habe ich für meine wichtigen Fälle 4 templates. In 4 Durchgängen wende ich also alle in der Reihenfolge vom komplexesten Ausdruck bis hin zum einfachsten an, die 1-2 Spezialfälle werden danach von Hand gemacht. Die Methode ist natürlich Brechstange, aber ich bin neu bei RegEx...

Ich habe jetzt weiterprobiert mit Sachen wie ([^ ]{0,}), ([^ ]{0,}) aber der Ausdruck erfasst durch das Leerzeichen keine doppelten Vornamen. Was denkbar wäre, das man alle Spezialfälle mit | trennt, nur leider kann man in der Ersetzen-Zeile die einzelnen Ausdrücke nicht ebenso trennen, ein $2 $1|$4 $3 ist also nicht möglich.

Und das ist der Punkt an dem ich festhänge. Weißst Du van Dusen (oder jemand anderes) eine Lösung?

Alles Gute
habla
Junior Member
Junior Member
Posts: 19
Joined: 2004-08-28, 23:08 UTC

Post by *habla »

Ich habe eine Antwort gefunden, direkt nachdem ich den Beitrag hier geschrieben habe.

Suchen nach:
([!-%'-+.-~¡-ÿ ]{0,})(, )([!-%'-+.-~¡-ÿ ]{0,})( - | & )

Ersetzen mit:
$3 $1$4

Diese RegExp müßte alles handlen, AUßER Ausdrücke wie "Stuckhart-Schnarre" als Nach- bzw. "Klaus-Peter" als Vorname. (Wegen dem "-"). Wie könnte ich das auch noch hinbekommen?
User avatar
van Dusen
Power Member
Power Member
Posts: 684
Joined: 2004-09-16, 19:30 UTC
Location: Sinzig (Rhein), Germany

Post by *van Dusen »

Hallo habla,

versuch's mal hiermit:

Alle Parameter im MUT auf die Fehlwerte (Voreinstellung) setzen und dann:

Suchen nach:

Code: Select all

"(?-g)((.+), (.+)) ([-&]) "
Ersetzen durch:

Code: Select all

"$3 $2 $4 "
(Jeweils ohne die Anführungszeichen)

RegEx EIN

Grüße, van Dusen
habla
Junior Member
Junior Member
Posts: 19
Joined: 2004-08-28, 23:08 UTC

Post by *habla »

Hallo van Dusen,

...und ich war so stolz auf meine schöne komplizierte RegEx ;)

Besten Dank!

Mit Greedy und .+ hab ich rumprobiert... den Ansatz hatt ich schon wieder vollkommen vergessen! Und die Idee, " - " und " % " mit " ([-&]) " zu finden, gefällt mir sehr... man muß überhaupt erst mal auf den Gedanken kommen! Naja, ich bin halt dabei, mich reinzufitzen.

Alles Gute

habla
Post Reply