( ... 1c und 1d probiere ich nach 1a und 1b)
Guten Morgen,
ich habe mich in den letzten Tagen viel mit der regulären Suche beschäftigt und bin überrascht, wie wirkungsvoll und effektiv dieses Instrument in Total Commander zu nutzen ist.
Folgende Aufgabenstellungen konnte ich leider nicht lösen:
Sozusagen eine Handvoll zu knackende Nüsse zu Weihnachten

Ich bin auf der Suche nach einer Lösung für die „reguläre Suche“:
(1 a)
Beispiel:
Tag - 20141129.txt
Ziel:
Tag - 2014-11-29.txt
Ich habe versucht, das mit folgender Regulierersuche zu lösen:
([0-9]{4,4)([0-9]{2,2)([0-9]{2,2)
$1-$2-$3
Meine Überlegung dabei – finde eine genau 8-stellige Nummer, finde darin ab dem Beginn der Nummer eine 4-stellige Nummer, anschließend eine 2-stellige Nummer und danach noch mal eine 2-stellige Nummer und trenne die Ziffernfolgen mit einem Bindestrich.
Soweit zur Theorie – wie kann man das als reguläre Suche schreiben?
Am Anfang der Nummer steht eines dieser Zeichen
Bindestrich oder Leerzeichen oder Unterstrich
Am Ende der Nummer steht der Punkt (/.).
(1 b)
In Analogie suche ich eine Lösung für folgendes Beispiel:
Beispiel:
Tag - 042015.txt
Ziel:
Tag - 2015-04.txt
$2-$1
Finde eine genau 6-stellige Nummer, nimm ab dem Anfang eine 2-stellige Nummer, dann eine 4-stellige Nummer.
Am Anfang der Nummer steht eines dieser Zeichen
Bindestrich oder Leerzeichen oder Unterstrich
Am Ende der Nummer steht der Punkt (/.).
Wie kann man das als reguläre Suche schreiben?
(1 c)
In Analogie suche ich eine Lösung für folgendes Beispiel:
Beispiel:
Tag - 0415.txt
Ziel:
Tag - 2015-04.txt
20$2-$1
Finde eine genau 4-stellige Nummer, nimm ab dem Anfang eine 2-stellige Nummer, dann eine 2-stellige Nummer.
Am Anfang der Nummer steht eines dieser Zeichen
Bindestrich oder Leerzeichen oder Unterstrich
Am Ende der Nummer steht der Punkt (/.).
Wie kann man das als reguläre Suche schreiben?
(1 d)
In Analogie suche ich eine Lösung für folgendes Beispiel:
Beispiel:
Tag - 04 15.txt
Ziel:
Tag - 2015-04.txt
20$2-$1
Finde eine genau 5-stellige Zeichenkette (2 Ziffer, ein Leerzeichen, 2 Ziffern), nimm ab dem Anfang eine 2-stellige Nummer, ignoriere das Leerzeichen, dann eine 2-stellige Nummer.
Am Anfang der Nummer steht eines dieser Zeichen
Bindestrich oder Leerzeichen oder Unterstrich
Am Ende der Nummer steht der Punkt (/.).
Wie kann man das als reguläre Suche schreiben?
(2)
Bei dieser Lösung gibt es noch ein Schönheitsfehler.
Beispiel:
20151209-Handelsblatt.pdf
20151209-Handelsblatt Teil 33 von 2015.pdf
Ziel:
Ich möchte, dass der Dateiname so verändert wird:
Handelsblatt - 20151209.pdf
Handelsblatt Teil 33 von 2015 - 20151209.pdf
Mit folgendem Suchmuster bin ich schon ein Stückchen vorangekommen, es funktioniert merkwürdigerweise nur,wenn der Bindestrich im ersten Suchausdruck enthalten ist. Dadurch ist natürlich ein Bindestrich am Ende zu viel im Dateinamen.
Wie kann man dieses Suchmuster eleganter und vor allem funktionstüchtig schreiben?
suchen nach:
([0-9]{8}-)(\w*)
ersetzen durch:
$2 - $1
Ergebnis:
Handelsblatt - 20151209-.pdf
(3)
Ich möchte Monat und Jahr miteinander tauschen, wenn dazwischen entweder einen Bindestrich oder ein Leerzeichen sind. Als Einzelsuche geht das so:
Beispiel:
12-2015
12 2015
12.2015
12_2015
Ziel:
2015-12
suche nach dem Muster "12-2015"
([0-9]{2})-([0-9]{4})
ersetze das Muster durch "2015-12"
$2-$1
und
suche nach dem Muster "12 2015"
([0-9]{2}) ([0-9]{4})
ersetze das Muster durch "2015 12"
$2-$1
Wie kann ich beide Suchanfragen in einer Suchanfrage kombinieren?
Suche nach Bindestrich oder Leerzeichen in einem Such-Durchlauf?
Vielen Dank!
tc_fun