文本编辑器(regex?)解释日期字符串的技巧



这样写:20120204235900

表示:2012 02 04 23:59:00,或4/Feb/2012 at 23:59:00

我有几千个这样的,我想把它们改成这样:例如:2012/02/04 23:59:00。

我知道我可以做一个Java程序,但必须有一个简单的方法,用一些文本编辑器做到这一点。

任何想法?

在notepad++中你可以这样做:

([12]ddd)(dd)(dd)(dd)(dd)(dd)

我在开始时检查1或2是否有一点日期验证,如果不需要,那么就用d替换[12]

并替换为

1/2/3 4:5:6

将"20120204235900"转换为"20120204 23:59:00"

技巧是使用1(称为反向引用)访问括号中的子匹配。因此,第1组是2中第一对括号的内容,即第二对括号的匹配。

有了这个,重新排序子匹配没有问题,但是用February替换02需要更复杂的逻辑。我认为这在编辑器中是不可能的。

注意:这只是测试以1或2开头的14个数字,所以它不会验证数字序列是否是有效的日期/时间!

我会用notepad++。

就像这样使用正则表达式替换:

([0-9][0-9][0-9][0-9])([0-9][0-9])([0-9][0-9])([0-9][0-9])([0-9][0-9])([0-9][0-9])

并替换为

1/2/3 4:5:6

您可以使用sed(流编辑器),它通常在任何*nix系统上都可用。这一行应该可以工作:

sed -e "s/^([0-9]{4})([0-1][0-9])([0-3][0-9])([0-2][0-9])([0-6][0-9])([0-6][0-9])/1/2/3 4:5:6/g" <filename>

最新更新