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

如何使用正则提取Python JSON字符串中单大括号包裹的变量

解决方案

你遇到的问题根源是转义用的双大括号{{/}}中的首个{、末尾}被原有正则误捕捉,导致匹配结果异常。
正确的正则需要用零宽断言排除双大括号的转义场景,仅匹配单大括号包裹的变量名:

import re

sample_string = '{{"some_key_1":"{var1}",
                   "some_key_2":"Hello this is {var2} from {var3}"
                  }}'

result = re.findall(r"(?<!{){([^{}]+)}(?!})", sample_string)
print(result)

正则逻辑说明

  • (?<!{):负向零宽后行断言,确保当前匹配的{前面没有其他{,排除转义双大括号的左半部分
  • {:匹配变量包裹用的左大括号
  • ([^{}]+):捕获组,匹配所有不包含大括号的字符,即变量名
  • }:匹配变量包裹用的右大括号
  • (?!}):负向零宽先行断言,确保当前匹配的}后面没有其他},排除转义双大括号的右半部分

运行后即可得到预期输出:['var1', 'var2', 'var3']

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 06:15:11