You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用正则匹配@[xxx](yyy)格式字符串并替换为Handlebars语法

实现方案

直接使用带捕获组的全局正则替换即可,完整代码如下:

const originStr = "Today is going to be @[City Temp](city-temp) in @[City Name](city-name)"
const handlebarsStr = originStr.replace(/@\[.*?\]\((.*?)\)/g, '{{$1}}')
console.log(handlebarsStr)
// 输出结果:Today is going to be {{city-temp}} in {{city-name}}

正则规则说明

  • @\[:精准匹配规则要求的起始片段@[,[属于正则特殊元字符,需要加反斜杠转义
  • .*?:非贪婪匹配方括号内的所有展示文本内容,这部分不需要保留所以不用做捕获
  • \]\(:匹配方括号结束后紧跟的左括号,两个字符均为正则特殊元字符,需要转义
  • (.*?):第一个捕获组,匹配小括号内的变量名,这部分是我们需要保留的内容
  • \):匹配规则要求的结束字符右括号
  • 末尾的g修饰符代表全局匹配,会替换字符串中所有符合规则的片段,而不是仅替换第一个

该规则只会匹配完整的@[xxx](yyy)结构,单独出现的@、未配对的括号等不符合规则的内容都不会被误替换,完全匹配需求。

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 06:15:06