在记事本++中查找并替换为重新排序的日期格式
Posted
技术标签:
【中文标题】在记事本++中查找并替换为重新排序的日期格式【英文标题】:Find and replace with reordered date format in notepad++ 【发布时间】:2011-05-18 21:13:32 【问题描述】:我有一个包含几千行的文件要添加到 mysql 数据库中。行中有日期值采用 dd-mm-yyyy 格式,但我需要它们采用 yyyy-mm-dd 格式。
例如,'11-04-2010',
需要在每一行中变为 '2010-04-11',
。
在 notepad++ 或其他文本编辑器中是否有简单的方法来执行此操作?
【问题讨论】:
【参考方案1】:你可以用 Textpad 做到这一点:
查找: ([0-9]+)-+([0-9]+)-+([0-9]+)
替换:\3-\2-\1
【讨论】:
我认为您可以使用([0-9]4)-+([0-9]2)-+([0-9]2)
更具体。 \3-\2-\1
对我来说是全新的并且很有帮助。为此 +1。
javascript 有类似的东西吗?【参考方案2】:
为确保只重新排序错误的格式(以防合并数据库中的格式混合),请使用以下命令:
([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
【讨论】:
【参考方案3】:使用 Notepad++ 在文本文件的几行中将 mm/dd/yyyy 更改为 yyyy/mm/dd。脚本被保存为下一个文件的宏。
查找:([0-9]2)/+([0-9]2)/+([0-9]4) 替换:\3/\1/\2
【讨论】:
【参考方案4】:另一种适用于 ISO date format 值的稳健模式,例如 "2010-11-30T00:00:00.266Z "
捕获 ISO 日期表示的各种元素的组
"(\d4)-(\d1,2)-(\d1,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”
它适用于记事本++ 祝你好运!
【讨论】:
以上是关于在记事本++中查找并替换为重新排序的日期格式的主要内容,如果未能解决你的问题,请参考以下文章