正则表达式替换第二次出现的字符

标签 regex replace

我有以下格式的一些数据:

MM:ss:mmm 哪里MM is minutes , ss is secondsmmm is 3 digit milliseconds , 喜欢:

05:23:236

我试图用一个点替换第二次出现的冒号:
05:23.236

我想使用 regex在像 Notepad++ 这样的编辑器中进行替换的模式,我想出了
这个正则表达式匹配我的表达:
 \d{1,2}:\d{1,2}:\d{1,3}

但现在我怎么能只得到 second occurrence of colon所以我可以用 dot 替换它?

编辑:请注意,我正在处理的数据可能带有 1-2 位数的分钟、1-2 位数的秒和 1-3 位数的毫秒

最佳答案

使用这个正则表达式:

:(\d{1,3})$

替换为:
.$1

上面所做的是选择最后一个:后面跟着 1-3 位数的毫秒。

DEMO

关于正则表达式替换第二次出现的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24141525/

相关文章:

c# - 应该使用什么正则表达式来匹配多行日志消息?

regex - 为什么在 Visual Studio 中具有正向回溯的正则表达式会导致每隔一个匹配项被替换?

javascript - Jquery:用数组中的值替换字符串

linux - 替换 bash 返回输出中的字符

c# - 使用 RegEx 查找所有没有数字的单词

javascript - 正则表达式 - 仅当字符未继续或后跟相同字符时才匹配字符

c# - 正则表达式,强制文本垂直

Java - 使用数组中的值的replace()方法正在更改数组值?

mysql - 如何在不同的服务器上设置两个 MySQL 数据库以与字符串替换同步?

string - 如何用 R 中的字符串替换数据框中的值?