javascript - 正则表达式模式仅识别一组大括号
问题描述
我正在寻找一个只匹配一组花括号的正则表达式模式。基本上我有一个像这样的对象:{Hello: '${name}'}
我想要一个模式,它只会替换变量周围的括号,而不是全部。输出应该类似于:{Hello: 'name'}
然后可以插入 name 的值。这是我创建的正则表达式:(\$\{|\})
但它甚至替换了最后一个括号并输出如下内容: {Hello: 'name' 谁能帮我弄清楚我哪里出错了?
解决方案
您可以使用
.replace(/\$\{(\w+)}/g, '$1')
或者:
.replace(/\$\{([^{}]+)}/g, '$1')
请参阅正则表达式演示。详情:
\$\{
-${
字符串(\w+)
- 第一组:一个或多个字母/数字/下划线[^{}]+
{
- 除了and之外的一个或多个字符}
}
- 一个}
字符。
请参阅 JavaScript 演示:
console.log("{Hello: '${name}'}".replace(/\$\{(\w+)}/g, '$1'))
推荐阅读
- clojure - 在 Clojure 中检查 core.async/sliding-buffer 中的元素
- makefile - 如何使用文件列表执行 Makefile 模式规则
- jquery - jQuery放大和缩小可滚动div,当所有内容可见时消除滚动
- batch-file - 将 .BAT 转换为 .SH
- c# - 带有 .Net 核心的 iTextSharper 使用 iTextSharpLGPLv2.Core
- java - 如何创建一个填充不同类型对象的 ArrayList?
- google-bigquery - BigQuery Standard SQL 使用 UNNEST 复制数据
- jquery - 在悬停时更改背景图像
- amazon-web-services - 将消息从 SNS 发布到 kinesis
- c# - EF Core 中的一些关系问题