【问题标题】:reformatting a date重新格式化日期
【发布时间】:2012-06-22 12:43:28
【问题描述】:

我正在使用 notepad++ 进行一些日期转换,但遇到了问题。

我可以将 dd/mm/yyyy 格式的日期转换为 yyyy-mm-dd

但是,某些日期的格式为 d/m/yyyy,因为日期或月份只有 1 位数字,然后我的正则表达式失败。

如何将它们全部格式化为读取 dd/mm/yyyy?

非常感谢您的帮助!

【问题讨论】:

    标签: regex


    【解决方案1】:
    ([0-9]{1,2})/([0-9]{1,2})/([0-9]{4})
    

    【讨论】:

    • 这可以很好地找到日期,谢谢。我目前有以下 \3-\2-\1 来进行替换(这会更改顺序并用“-”分隔。如何用正确的日期格式替换单个出现的(d/m/yyyy)( yyyy-mm-dd)?
    • ([0-9])/([0-9])/([0-9]{4}) 然后 0\3-0\2-\1([0-9]{2})/([0-9])/([0-9]{4}) 然后 \3-0\2-\1 取决于月/日有两个数字的位置
    【解决方案2】:

    不知道正则表达式的记事本+版本,但也许这会起作用:

    (\d+)/(\d+)/(\d\d\d\d)
    

    \d是数字,可以替换为[0-9]

    + 表示出现一次或多次,可以替换为{1,2},表示出现一次或两次

    如果您想替换添加前导零的日期或月份,那么您应该使用简单的程序来完成。在编辑器中,您必须分 3 步完成:

    1. 替换dd/mm/yyyy,因为你已经这样做了
    2. 替换d/mm/yyyy [^0-9]([0-9])/([0-9]){2}/([0-9]){4} -> \3-\2-0\1
    3. 替换dd/m/yyyy ([0-9]){2}/([0-9])/([0-9]){4} -> \3-0\2-\1

    【讨论】:

    • 谢谢你,我希望用 1 个表达式来完成所有 rme,但那是我懒惰!这工作得很好。
    猜你喜欢
    • 2013-07-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-25
    相关资源
    最近更新 更多