ich will im Multi-Rename-Tool Dateien umbenennen, und zwar will ich an bestimmten Stellen im Namen Kommas einfügen, also den Vor- und Nachnamen vertauschen.
Hier ein paar Beispiele:
"Lama Ole Nydal - Biografie.pdf" ---> "Nydal, Lama Ole - Biografie.pdf"
"Karl Ralf Müller & Jens Müller-Stark & Kai Peter Uwe Rust - Irgendwas.doc" ---> "Müller, Karl Ralf & Müller-Stark, Jens & Rust, Kai Peter Uwe - Irgendwas.doc"
Also praktisch so, das immer der letzte Ausdruck vor "-" oder "&" als Nachname behandelt wird. Aber genau diesen letzten Ausdruck zu separieren bekomm ich nicht hin. Mit (?-g)(.+) (.+) (-|&) wird mir zwar fallübergreifend erstmal alles gedreht, aber ich habe nur ein Wort als Vornamen (wegen dem Greedy off). Nehme ich Greedy raus, "frisst" mir .+ alle Bindestriche und &-Zeichen...
Ich freue mich über jeden Hinweis
Christian
RegEx-Frage
Moderators: Hacker, Stefan2, white
- Clas Hortien
- Senior Member
- Posts: 200
- Joined: 2003-03-03, 15:03 UTC
Für die von habla aufgeführten Beispiele funktioniert der reguläre Ausdruck von Clas Hortien bestens.
Ich vermute aber, dass habla die Ergebnisse dieser Umbenennaktion wieder rückgängig machen möchte (richtig geraten, habla?
). Falls diese Vermutung zutrifft, dann scheitert die Lösung leider an Dateinamen mit Leerzeichen im Teil hinter dem " - " (dem Titel), also z.B. an
"Anja Schultze & Klaus Kohl & Oliver Liebknecht - Anthologie 05 - Index.pdf".
Dafür habe ich bisher aber leider auch noch keine Lösung gefunden (z.B. nicht-greedy bis zum (ersten) " - ", greedy ab " - ", den nicht-greedy-geparsten Teil dann noch weiter zerlegen)
Ich vermute aber, dass habla die Ergebnisse dieser Umbenennaktion wieder rückgängig machen möchte (richtig geraten, habla?

"Anja Schultze & Klaus Kohl & Oliver Liebknecht - Anthologie 05 - Index.pdf".
Dafür habe ich bisher aber leider auch noch keine Lösung gefunden (z.B. nicht-greedy bis zum (ersten) " - ", greedy ab " - ", den nicht-greedy-geparsten Teil dann noch weiter zerlegen)

- Clas Hortien
- Senior Member
- Posts: 200
- Joined: 2003-03-03, 15:03 UTC
Besten Dank Clas! Das ist viel flexibler als meine bisherigen Ansätze ;) Aber, wie könnte es auch anders sein: Ich habe die RegEx probiert, und bin auf 3 weitere Spezialfälle gestoßen, mit denen die jetzige RegEx Probleme hat.
Der Ausdruck sollte auf vorhandene Zahlen nicht ansprechen. Denn wenn Zahlen vorkommen, kann man sicher annehmen, das es sich nicht um Namen handelt. Wobei die Ziffern vor dem Bindestrich natürlich überall stehen könnten. Beispiel:
Archiv Nov 04 - Lager NE - Inv.pdf
Der Ausdruck sollte auf schon vorhandene Kommas nicht ansprechen. In dem Fall kann man annehmen, das die Drehung schon vorgenommen wurde. Beispiel:
Eisenkolb, Kerstin & Gökhan, Mehmet & Weickard, Helge - Windows-Sicherheit.pdf
3. Es steht lediglich ein Begriff vor dem ersten Bindestrich, wie z.B. in:
Microsoft - MOC 2046A MS Windows 2000 Grundlagen zu Netzwerk und Betriebssystem - Arbeitsbuch für Kursleiter.pdf
Ich frage mich, ob das überhaupt noch geht. Man müßte wohl in jeden Ausdruck die Optionen NICHT Komma und NICHT Zahlen einbauen, und 2 Operatoren optional machen...
Würd mich freuen, wenn Du Dir noch mal die Zeit nimmst, um dir das Problem anzuschauen ;) Wobei ich sagen muß, auch schon in seiner jetzigen Form bedeutet die Regexp sehr viel Einsparung.
Achso, und @van Dusen:
Ja, Du hast natürlich recht, das soll genau die Umkehrung sein für besagten Thread, den Du verlinkt hast. Hätte ich wegen den besseren Beispielen glatt selber verlinken sollen ;)
So. Ratet mal, was ich jetzt tue...
Der Ausdruck sollte auf vorhandene Zahlen nicht ansprechen. Denn wenn Zahlen vorkommen, kann man sicher annehmen, das es sich nicht um Namen handelt. Wobei die Ziffern vor dem Bindestrich natürlich überall stehen könnten. Beispiel:
Archiv Nov 04 - Lager NE - Inv.pdf
Der Ausdruck sollte auf schon vorhandene Kommas nicht ansprechen. In dem Fall kann man annehmen, das die Drehung schon vorgenommen wurde. Beispiel:
Eisenkolb, Kerstin & Gökhan, Mehmet & Weickard, Helge - Windows-Sicherheit.pdf
3. Es steht lediglich ein Begriff vor dem ersten Bindestrich, wie z.B. in:
Microsoft - MOC 2046A MS Windows 2000 Grundlagen zu Netzwerk und Betriebssystem - Arbeitsbuch für Kursleiter.pdf
Ich frage mich, ob das überhaupt noch geht. Man müßte wohl in jeden Ausdruck die Optionen NICHT Komma und NICHT Zahlen einbauen, und 2 Operatoren optional machen...
Würd mich freuen, wenn Du Dir noch mal die Zeit nimmst, um dir das Problem anzuschauen ;) Wobei ich sagen muß, auch schon in seiner jetzigen Form bedeutet die Regexp sehr viel Einsparung.
Achso, und @van Dusen:
Ja, Du hast natürlich recht, das soll genau die Umkehrung sein für besagten Thread, den Du verlinkt hast. Hätte ich wegen den besseren Beispielen glatt selber verlinken sollen ;)
So. Ratet mal, was ich jetzt tue...