首页 > 解决方案 > 正则表达式模式仅识别一组大括号

问题描述

我正在寻找一个只匹配一组花括号的正则表达式模式。基本上我有一个像这样的对象:{Hello: '${name}'}我想要一个模式,它只会替换变量周围的括号,而不是全部。输出应该类似于:{Hello: 'name'}然后可以插入 name 的值。这是我创建的正则表达式:(\$\{|\})但它甚至替换了最后一个括号并输出如下内容: {Hello: 'name' 谁能帮我弄清楚我哪里出错了?

标签: javascriptnode.jsregex

解决方案


您可以使用

.replace(/\$\{(\w+)}/g, '$1')

或者:

.replace(/\$\{([^{}]+)}/g, '$1')

请参阅正则表达式演示详情

  • \$\{-${字符串
  • (\w+)- 第一组:一个或多个字母/数字/下划线
  • [^{}]+{- 除了and之外的一个或多个字符}
  • }- 一个}字符。

请参阅 JavaScript 演示:

console.log("{Hello: '${name}'}".replace(/\$\{(\w+)}/g, '$1'))


推荐阅读