javascript - 匹配正则表达式中单个字符的第 n 次出现

标签 javascript regex

我很难找到任何真正符合我需要的正则表达式,尽管这个请求在我开始时看起来很容易。希望在这里得到帮助。

我们代码中的一个早期错误是以 YYYY-MM-DD HH:mm:ss:SSS 格式发送日期。 。这不是有效的 ISO,因为毫秒以冒号而不是句点开头。

我想要一个快速的正则表达式与 JS .replace() 结合使用来匹配第三个冒号 :并将其替换为句点 .正如我所说,这听起来非常基本 - 但我没有发现任何有效的方法,并且在我的案例中,针对类似问题的建议修复也没有其他地方有效。

感谢任何帮助。

最佳答案

您可以使用 /^((?:[^:]*:){2}[^:]*):(.*)$/; (?:[^:]*:){2} 匹配第二个冒号和 ^((?:[^:]*:){2}[^:]* ) 匹配从字符串开头到第三个冒号的字符串; (.*)$ 匹配第三个冒号之后的所有内容;捕获第三个冒号之前和之后的内容,使用反向引用重新格式化字符串:

console.log("YYYY-MM-DD HH:mm:ss:SSS".replace(/^((?:[^:]*:){2}[^:]*):(.*)$/, "$1.$2"))

或者针对此特定情况使用更简单的方法,将最后一个冒号替换为 :

console.log("YYYY-MM-DD HH:mm:ss:SSS".replace(/:(?=[^:]*$)/, "."))

关于javascript - 匹配正则表达式中单个字符的第 n 次出现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45069509/

相关文章:

java - 正则表达式匹配句点但如果两边都有句点则不匹配(Java)

regex - 在GO中捕获重复组

javascript - jquery中动态添加类

javascript - 从 onchange 属性调用 javascript 类函数

javascript - Liferay 应用程序适配器不适用于 javascript 文件

java - 从 SQL 插入查询字符串中提取带引号的值

java - 用于在 JavaScript 中查找 Java 格式字符串的正则表达式

C# 中的正则表达式仅返回第一个匹配项

javascript - 为什么jQuery的ajax会自动运行脚本?

javascript - 在另一个 AngularJS 之后执行函数