通过NotePad ++更改日期格式

时间:2017-05-20 07:12:26

标签: regex date notepad++

我需要更改文件中几个日期的格式。 这个文件包含数千行。

我想知道是否可以使用正则表达式将Apr 07, 2016等日期转换为2016-04-07(ISO 8601国际标准)?

以下是一些例子

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

我想使用Notepad ++文本编辑器来执行此操作。

1 个答案:

答案 0 :(得分:1)

你可以通过字典技巧实现这一目标。 (见下文)

我们将使用以下正则表达式:

(Jan|Fev|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)(?=[\s\S]*Dictionary.*:\1=(\d+))\s(\d{2}),\s(\d{4})

Demo

使用Notepad ++或Sublime Text

首先,在文本编辑器中打开文件并将其粘贴到我们文件的底部:

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

然后,打开搜索/替换菜单(或使用 CTRL + H )并使用:

找到: 我们的正则表达式

替换为: \4-\2-\3

搜索模式:正则表达式

现在点击全部替换

<强>演示

Notepad++

Sublime Text

<强>解释

(Jan|Fev|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)在第一组中捕获MONTH

(?=...)其次是

[\s\S]*Dictionary.*任何字符,直到Dictionary字(这就是字典必须在文件末尾过去的原因)

:\1=(\d+)Dictionary之后,匹配第一个捕获值后跟=,然后匹配第二组中捕获的一些数字,这是MONTH REPLACEMENT

  

现在我们可以继续定义日期模式。

\s(\d{2})月后跟一个空格和2位数字,在第3组中捕获,这是DAY

\s(\d{2}),\s(\d{4})日之后是一个逗号,一个空白和4位数字,在第4组中捕获,这是年份

  

现在我们所有的团队都可以使用,我们可以建立替换模式:

\4-\2-\3年 - REPLACEMENT_MONTH -DAY