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

如何用Python的re库编写正则提取嵌套括号及内部文本?

提取嵌套大括号的正则表达式解决方案

Python标准库re支持递归正则表达式,恰好能解决嵌套大括号的匹配需求。对应的正则表达式如下:

\{(?:[^{}]|(?R))*\}

正则规则说明

  • \{:匹配开头的左大括号
  • (?:[^{}]|(?R))*:非捕获组,重复匹配任意次数,包含两种情况:
    • [^{}]:匹配非大括号的任意字符
    • (?R):递归匹配整个正则表达式,处理嵌套的大括号结构
  • \}:匹配结尾的右大括号

完整代码示例

import re

INPUT = '{} abc {abc} cdf {"a":1, "b":"{"a":1, "b":{"a":1}}"}'
regex = r'\{(?:[^{}]|(?R))*\}'
result = re.findall(regex, INPUT)

print(result)

运行后输出结果:

['{}', '{abc}', '{"a":1, "b":"{"a":1, "b":{"a":1}}"}']

注意:如果字符串中存在转义的大括号(如\{),该正则会误匹配,需先处理转义字符或调整正则规则排除转义场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 01:13:09