如何在六位数子串的每两位数之间添加点?

Posted

技术标签:

【中文标题】如何在六位数子串的每两位数之间添加点?【英文标题】: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 文件。 【参考方案1】:

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

(\d2)(\d2)(\d2)

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

并替换为:

$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

【讨论】:

有些东西告诉我这个“答案”不应该在这里,而是在评论部分......哦 谢谢,我会阅读的。我并没有试图避免学习它......好吧也许有点......我总是对正则表达式感到非常不知所措。这不是作业帮助或任何东西,只是试图合并一些文件。

以上是关于如何在六位数子串的每两位数之间添加点?的主要内容,如果未能解决你的问题,请参考以下文章

如何口算十一位数乘十一位数

C语言输出一个五位数,万位和百位数字一样,前三位数字和为9,后两位

java 自定义一个整数,计算它是几位数?

LeetCode

CRC校验的位数是如何选取的?

excel表格中的数字有一位数、两位数、三位数,可是排序只按第一位数排,怎样才能按1到10000的自然顺序排呢