我有一个有几千行的文件要添加到MySQL数据库中。行中的日期值采用dd-mm-yyyy格式,但我需要它们采用yyyy-mm-dd格式。
例如,'11-04-2010',
需要在每一行中成为'2010-04-11',
。
在notepad ++或其他文本编辑器中有一种简单的方法吗?
答案 0 :(得分:34)
您可以使用Textpad执行此操作:
查找: ([0-9]+)-+([0-9]+)-+([0-9]+)
替换:\ 3- \ 2- \ 1
答案 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 :(得分:2)
使用Notepad ++将mm / dd / yyyy更改为文本文件的多行中的yyyy / mm / dd。脚本被保存为下一个文件的宏。
查找:([0-9] {2})/ +([0-9] {2})/ +([0-9] {4}) 替换:\ 3 / \ 1 / \ 2
答案 3 :(得分: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值,例如-“ 2010年11月30日00:00:00 AM”
“ \ 2 / \ 3 / \ 1 \ 4:\ 5:\ 6AM”
它与Notepad ++一起使用时效果很好 祝你好运!