Sie können dies mit Wörterbuch Trick erreichen.(Siehe unten)
Wir werden die folgenden regulären Ausdruck verwenden:
(Jan|Fev|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)(?=[\s\S]*Dictionary.*:\1=(\d+))\s(\d{2}),\s(\d{4})
Demo
Mit Notepad ++ oder Sublime Text
Zunächst öffnen Sie Ihre Datei in den Texteditor und fügen Sie diesen am Ende unserer Datei ein:
Dictionary:Jan=01:Fev=02:Mar=03:Apr=04:May=05:Jun=06:Jul=07:Aug=08:Sep=09:Oct=10:Nov=11:Dec=12
Dann öffnen Suchen/Ersetzen Menü (oder verwenden Sie STRG + H) und Verwendung:
Suchen nach:unsere Regex
Ersetzen durch:\4-\2-\3
Suchmodus: Regulärer Ausdruck
Klicken Sie jetzt All Ersetzen
Demo
Erklärung
(Jan|Fev|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)
Capture-Monat in der ersten Gruppe
(?=...)
Gefolgt von
[\s\S]*Dictionary.*
Jeder Charakter bis Dictionary
Wort (Deshalb Wörterbuch vorbei am Ende der Datei sein muss)
:\1=(\d+)
Nach Dictionary
, entsprechen die ersten Capture-Wert gefolgt von =
dann einige Ziffern, die in der 2. Gruppe erfasst werden, ist dies der MONAT ERSATZ
Jetzt können wir weiterhin das Datumsmuster definieren.
\s(\d{2})
Monat wird durch ein Leerzeichen und 2 Ziffern folgen, die in einer 3.en Gruppe eingefangen werden, ist dies der TAG
\s(\d{2}),\s(\d{4})
Tag durch ein Komma gefolgt wird, ein Leerzeichen und 4 Stellen, die in einem eingefangen 4. Gruppe, dies ist das Jahr
Nun sind alle unsere Gruppen vorhanden sind, können wir das Substitutionsmuster bauen:
\4-\2-\3
YEAR- ERPLATZIERUNG_MONTH -DAY
Dies ist kein Job für Npp/Regex, schreiben Sie besser ein Skript in Ihrer bevorzugten Skriptsprache. – Toto
@Toto ziemlich schwierig, aber machbar mit dem Wörterbuch Trick. –
Sie könnten dies in Excel einfach tun, anstatt Skriptsprachen zu schreiben –