在notepad ++中查找并替换重新排序的日期格式

问题描述 投票:22回答:4

我有一个有几千行的文件要添加到MySQL数据库中。行中的日期值采用dd-mm-yyyy格式,但我需要它们采用yyyy-mm-dd格式。

例如,'11-04-2010',需要在每一行成为'2010-04-11',

在notepad ++或其他文本编辑器中有一种简单的方法吗?

regex date notepad++ replace
4个回答
34
投票

您可以使用Textpad执行此操作:

发现: ([0-9]+)-+([0-9]+)-+([0-9]+)

替换:\ 3- \ \ 2- \ 1


8
投票

要确保只重新排序错误的格式(如果您有合并数据库的混合格式),请使用以下命令:

([0-9]{2})-+([0-9]{2})-+([0-9]{4})

这将搜索(四位数,短划线,两位数,短划线,两位数)。

在像notepad ++这样的正则表达式编辑器中,将其替换为:

\3-\2-\1

在像libre office这样的工具中,您需要将其替换为:

$3-$2-$1 

编辑:我写了一篇关于此的博文,因为它似乎是一个常见的问题:http://bytethinker.com/blog/correct-date-format-with-notepad-and-regex


2
投票

使用Notepad ++将mm / dd / yyyy更改为文本文件的多行中的yyyy / mm / dd。脚本被保存为下一个文件的宏。

查找:([0-9] {2})/ +([0-9] {2})/ +([0-9] {4})替换:\ 3 / \ 1 / \ 2


0
投票

另一个强大的模式适用于ISO date format值,如“2010-11-30T00:00:00.266Z”

捕获ISO日期表示的各种元素的组

“(\ d {4}) - (\ d {1,2}) - (\ d {1,2})T([0-2] \ d):([0-5] \ d):( [0-5] \ d)(?:?\ d +)z \ S“?

在这种模式中总共捕获了六个组,最后包含“?:”的第七组是非捕获的,这意味着它不保留组记录的任何值,只是忽略它们。

我们捕获的六个小组的数字基于\ 1 \ 2 \ 3 ......高达\ 6等位置。

替换模式将该日期更改为数据库支持的日期格式,主要用于Oracle值,例如 - “11/30/2010 00:00:00 AM”

“\ 2 / \ 3 / \ 1 \ 4:\ 5:\ 6 AM”

它适用于Notepad ++ Good Luck!

© www.soinside.com 2019 - 2024. All rights reserved.