You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

使用UltraEdit Perl正则表达式为4位时间字符串插入冒号

如何用正则将四位数字时间(如1234)替换为带冒号的格式(12:34)

嘿,这个问题其实是正则里捕获分组的经典应用场景,我来给你捋明白~

你之前用\d\d\d\d能匹配到四位数字的时间串,但没法拆分替换,核心原因是没给正则加「捕获分组」——简单说就是用括号把你想单独拿出来的部分圈住,正则会记住这些分组的内容,替换的时候就能调用它们了。

具体步骤:

  1. 修改匹配正则,添加捕获分组
    把原来的\d\d\d\d改成(\d\d)(\d\d)

    • 第一个括号(\d\d)会捕获前两位数字(比如1234里的12)
    • 第二个括号(\d\d)会捕获后两位数字(比如1234里的34)
  2. 替换时使用反向引用
    不同工具/语言里的反向引用写法略有不同,常见的几种:

    • 大多数文本编辑器(VS Code、Sublime、Notepad++):用$1:$2,$1对应第一个捕获组的内容,$2对应第二个。比如匹配到1234,替换后就是12:34
    • Python的re.sub方法:可以用r"\1:\2"(注意加r表示原始字符串,避免转义问题),或者同样用$1:$2(re.sub支持两种写法)。
    • JavaScript:用\1:\2,但在字符串里要写成"\\1:\\2"或者用模板字符串加原始标识。

额外小提醒:

如果你的四位数字里可能混着非时间的内容(比如1234是编号不是时间),可以给正则加个边界限制,比如\b(\d\d)(\d\d)\b,这样只会匹配独立的四位数字,避免误替换其他场景的四位数字。

内容的提问来源于stack exchange,提问作者Terry

火山引擎 最新活动