【问题标题】:How to add dots between every two digits of a six digit substring?如何在六位数子串的每两位数之间添加点?
【发布时间】:2017-12-13 13:21:12
【问题描述】:

我有一个包含大约一千个文件名的文本文件,我需要稍微更改一下。每个文件名都是一个日期和时间,格式如下:

2013-05-01 120125.jpg

我需要将它们全部转换为:

2013-05-01 12.01.25.jpg

我假设这对于正则表达式来说是相当微不足道的,但当我尝试对它们做任何事情时,我总是感到困惑!感谢您的帮助!

【问题讨论】:

  • 你试过什么?展示你的作品。 SO 不是代码编写服务,您必须自己完成工作,我们可以帮助您解决遇到的问题。
  • 运行这个正则表达式的语言/环境是什么?
  • 我很可能会在 nano 中运行正则表达式。我要做的是使用 renameutils 批量更改文件名。这将打开一个包含文件夹中所有文件名的 nano 文件。

标签: regex datetime rename filenames nano


【解决方案1】:

您想通过这样的捕获对子字符串使用替换技术(在您使用的任何语言/环境中):

(\d{2})(\d{2})(\d{2})

*注意花括号是为了提高效率。

并替换为:

$1.$2.$3

这是demo link

这是SO page discussing the execution of replacements on nano

【讨论】:

  • 谢谢,我试试看。
【解决方案2】:

使用捕获组匹配数字,并将它们复制到替换。

替换:(\d\d)(\d\d)(\d\d)\.jpg

与:$1.$2.$3.jpg

$1$2$3 复制每个捕获组匹配的原始字符串部分。

【讨论】:

    【解决方案3】:

    正如 Soviut 所说,SO 是为了帮助而不是为您工作。话虽这么说:

    如果您想使用正则表达式做某事,最好访问 Rubular 网站,该网站允许您创建正则表达式,同时准确查看您得到的结果。

    Rubular

    【讨论】:

    • 有些东西告诉我这个“答案”不应该在这里,而是在评论部分......哦
    • 谢谢,我会阅读的。我并没有试图避免学习它......好吧也许有点......我总是对正则表达式感到非常不知所措。这不是作业帮助或任何东西,只是试图合并一些文件。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-01-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-27
    相关资源
    最近更新 更多