2017-05-20 19 views
-2

Ich muss das Format mehrerer Daten in einer Datei ändern. Diese Datei enthält tausend Zeilen.Ändern Datumsformat über NotePad ++

Ich frage mich, ob es möglich ist, Daten wie Apr 07, 2016 in 2016-04-07 (ISO 8601 internationalen Standard) mit einem regulären Ausdruck zu konvertieren?

Hier sind einige Beispiele

Apr 07, 2016 =>2016-04-07
Jun 11, 2004 =>2004-06-11
Mar 31, 1975 =>1975-03-31

Ich möchte Notepad ++ Texteditor verwenden, um dies zu tun.

+0

Dies ist kein Job für Npp/Regex, schreiben Sie besser ein Skript in Ihrer bevorzugten Skriptsprache. – Toto

+0

@Toto ziemlich schwierig, aber machbar mit dem Wörterbuch Trick. –

+0

Sie könnten dies in Excel einfach tun, anstatt Skriptsprachen zu schreiben –

Antwort

1

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

Notepad++

Sublime Text

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