我需要更改文件中几个日期的格式。 这个文件包含数千行。
我想知道是否可以使用正则表达式将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 ++文本编辑器来执行此操作。
答案 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})
使用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
搜索模式:正则表达式
现在点击全部替换
<强>演示强>
<强>解释强>
(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