Umbenenn-Tool: Wie alle Punkte durch Leerstellen ersetzen?
Moderators: Hacker, Stefan2, white
-
- Junior Member
- Posts: 4
- Joined: 2006-12-13, 11:24 UTC
Umbenenn-Tool: Wie alle Punkte durch Leerstellen ersetzen?
Reguläre Ausdrücke / Warum funktioniert dieser eine nicht?
Hallo miteinander,
wenn ich diesen Ausdruck \.(?![^.]*$) für Dateinamen mit dem Aufbau "part1.part2.part3.partn.ext" einsetze, erhalte ich einen Fehler. Woran mag das liegen? Bin für jede Hilfe dankbar.
Hallo miteinander,
wenn ich diesen Ausdruck \.(?![^.]*$) für Dateinamen mit dem Aufbau "part1.part2.part3.partn.ext" einsetze, erhalte ich einen Fehler. Woran mag das liegen? Bin für jede Hilfe dankbar.
- Clas Hortien
- Senior Member
- Posts: 200
- Joined: 2003-03-03, 15:03 UTC
-
- Junior Member
- Posts: 4
- Joined: 2006-12-13, 11:24 UTC
Hi Michael,
diese Frage gab es hier mindestens schon 1x im Forum.
Ich glaube das Leichteste war
die Umbenennung in drei Schritten durchzuführen:
1.)
Original umbenennen zu: [N] #[E]
Start
Neu einlesen-Knopf (links neben Start)
2.)
Das #-Zeichen bei [N] #[E] entfernen.
Suche: . (Punkt)
Ersetzen: Blank
Start
Neu einlesen
3.)
Suche: Blank#
Ersetzen: . (Punkt)
diese Frage gab es hier mindestens schon 1x im Forum.
Ich glaube das Leichteste war
die Umbenennung in drei Schritten durchzuführen:
1.)
Original umbenennen zu: [N] #[E]
Start
Neu einlesen-Knopf (links neben Start)
2.)
Das #-Zeichen bei [N] #[E] entfernen.
Suche: . (Punkt)
Ersetzen: Blank
Start
Neu einlesen
3.)
Suche: Blank#
Ersetzen: . (Punkt)
If someone is interested
i have tested this example with Siren:
with the syntax
%b[1,"."] %b[2,"."] %b[3,"."] %b[4,"."].%e
i am able to rename the files with one single pass.
Explanations:
%b => the base name
[n,"."] => n is the n-th part of the base name
[n,"."] => ,"." (coma quote dot quote) means tell him the separator=dot to split the name in parts
%e => the extension
====> %b[1,"."]BLANK%b[2,"."]BLANK%b[3,"."]DOT%e
Siren freeware renamer can be found here => http://www.scarabee-software.net/en/siren.html
i have tested this example with Siren:
with the syntax
%b[1,"."] %b[2,"."] %b[3,"."] %b[4,"."].%e
i am able to rename the files with one single pass.
Explanations:
%b => the base name
[n,"."] => n is the n-th part of the base name
[n,"."] => ,"." (coma quote dot quote) means tell him the separator=dot to split the name in parts
%e => the extension
====> %b[1,"."]BLANK%b[2,"."]BLANK%b[3,"."]DOT%e
Siren freeware renamer can be found here => http://www.scarabee-software.net/en/siren.html
-
- Junior Member
- Posts: 4
- Joined: 2006-12-13, 11:24 UTC
\.(?![^.]*$)
Wo hast du den diese Syntax her?
\. => Punkt
?! => Negatives LookAhead oder was soll das sein?
^. => kein beliebiges Zeichen
* => 0-mal oder n-mal
$ => Zeilenende (meinst du \b Wortgrenze)
Also: such einen Punkt auf den nicht "kein oder mehrere beliebige Zeichen" folgen und das Ganze am Wortende?
1. das ergibt keinen Sinn
2. Lookahed und Lookbehind gibt es beim TC nicht
3. es gibt mehrere Implementierungen (Syntaxarten) von RE
Drücke im Multiumbenenntool auf den [?]-Knopf um zu sehen was hier gültig ist.
---
Info über das limitierte RE von TC:
Time to switch to a more standard regexp engine ?
http://www.ghisler.ch/board/viewtopic.php?t=12405
Wo hast du den diese Syntax her?
\. => Punkt
?! => Negatives LookAhead oder was soll das sein?
^. => kein beliebiges Zeichen
* => 0-mal oder n-mal
$ => Zeilenende (meinst du \b Wortgrenze)
Also: such einen Punkt auf den nicht "kein oder mehrere beliebige Zeichen" folgen und das Ganze am Wortende?
1. das ergibt keinen Sinn
2. Lookahed und Lookbehind gibt es beim TC nicht
3. es gibt mehrere Implementierungen (Syntaxarten) von RE
Drücke im Multiumbenenntool auf den [?]-Knopf um zu sehen was hier gültig ist.
---
Info über das limitierte RE von TC:
Time to switch to a more standard regexp engine ?
http://www.ghisler.ch/board/viewtopic.php?t=12405
Last edited by RID500 on 2006-12-13, 20:31 UTC, edited 1 time in total.
Was soll denn der Ausdruck bewirken?
\. => punkt
(=> Teilausdruck beginnen
? => ein Fragezeichen (welches in einen Dateinamen nicht erlaubt ist
! => ein Ausrufezeichen
[^.]=> gefolgt von einem Zeichen, das kein Punkt ist
*=> entweder 0 oder midestens 2 mal
$=>und dann gefolgt vom Zeilenende
)=> Ende des Teilausdrucks
so verstehe ich das jetzt.
sheepdog
\. => punkt
(=> Teilausdruck beginnen
? => ein Fragezeichen (welches in einen Dateinamen nicht erlaubt ist
! => ein Ausrufezeichen
[^.]=> gefolgt von einem Zeichen, das kein Punkt ist
*=> entweder 0 oder midestens 2 mal
$=>und dann gefolgt vom Zeilenende
)=> Ende des Teilausdrucks
so verstehe ich das jetzt.
sheepdog
"A common mistake that people make when trying to design something
completely foolproof is to underestimate the ingenuity of complete fools."
Douglas Adams
completely foolproof is to underestimate the ingenuity of complete fools."
Douglas Adams
Minotaurus,
Der einfachste Weg ist und bleibt:

HTH
Roman
Der einfachste Weg ist und bleibt:
Code: Select all
Name: [N]
Extension: #[E]
Search for: .| #
Replace with: |.

HTH
Roman
Mal angenommen, du drückst Strg+F, wählst die FTP-Verbindung (mit gespeichertem Passwort), klickst aber nicht auf Verbinden, sondern fällst tot um.
-
- Junior Member
- Posts: 4
- Joined: 2006-12-13, 11:24 UTC
Re: Reguläre Ausdrücke / Warum funktioniert dieser eine nich
Das sieht schwer nach Perl aus, ich kenn mich zwar mit Perl nich aus, aber die Hilfe von Vim7 sagt es mir (:h perl-patterns) ...Minotaurus wrote:Hallo miteinander,
wenn ich diesen Ausdruck \.(?![^.]*$) für Dateinamen mit dem Aufbau "part1.part2.part3.partn.ext" einsetze, erhalte ich einen Fehler. Woran mag das liegen? Bin für jede Hilfe dankbar.
...
mein Ziel ist, alle Punkte bis auf den vor der Erweiterung durch Leerstellen zu ersetzen, soll heißen aus "part1.part2.ext" wird "part1 part2.ext". Der Ausdruck ist korrekt, wie ich durch Versuche bspw. mit RegEx und anderen Tools festgestellt habe.
Viele Grüße
Michael
Also '(?!Atom)' matcht mit der Länge Null, wenn als Atom '[^.]*$' nicht matcht. Im Ergebnis matcht höchstens ein Punkt '\.', aber auch nur wenn noch irgendwo ein weiterer Punkt folgt.
Richtig, das geht nicht. Reguläre Ausdrücke sind eben nicht genormt sondern in jedem Programm anders.
Angenommen es ginge, dann wär auch sicherlich einfacher: \.(?=.*\.) -- jedenfalls im Prinzip