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

如何用正则匹配识别字符串中所有包裹在成对花括号内的变量文本

正则匹配方案

你需要的正则可以写成:

\{[^{}]+\}

配合全局匹配模式即可提取所有符合要求的成对花括号及内部内容。

规则说明

  • \{:匹配左花括号,加反斜杠转义避免和正则量词语法冲突
  • [^{}]+:匹配1个及以上非花括号的字符,确保不会跨花括号匹配、也不会匹配空的{}
    • 如果需要兼容空花括号{},可以把+替换为*
  • \}:匹配右花括号
  • 必须开启全局匹配模式(大多数语言正则写法后缀加g)才能返回所有匹配结果,而非仅第一个匹配项

不同语言实现示例

JavaScript 实现(匹配你给出的findAttributes调用场景)

function findAttributes(text) {
  const regex = /\{[^{}]+\}/g;
  return text.match(regex) || [];
}

// 测试用例
const input = `Hello {name},
This is {company} here to tell you about our recent development of our new product {product}`;
console.log(findAttributes(input)); // 输出:["{name}", "{company}", "{product}"]

Python 实现

import re

def find_attributes(text):
    return re.findall(r'\{[^{}]+\}', text)

特殊场景调整

如果你的业务场景存在花括号嵌套的情况(比如{user{name}}),上述正则只会匹配到最内层的{name},如果需要匹配完整的外层嵌套结构,可以根据你用的编程语言是否支持递归正则做对应调整,常规无嵌套场景上述方案完全够用。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 02:03:02