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

Python如何提取字符串中重复出现的{}包裹的文本内容?

解决方案

Python完全可以实现该提取需求,直接使用标准库re(正则表达式模块)即可完成,无需安装第三方依赖。

实现逻辑

针对无嵌套{}的场景,使用正则匹配规则:从左大括号{开始,匹配所有内部不含大括号的字符,直到遇到第一个右大括号}结束,避免跨内容匹配错误。

完整代码

import re

# 原始待处理字符串
string = 'Revenue for the period is {value="32", font="34"} and EBITDA is {value="12", font="34"} for 2022'
# 正则匹配规则:匹配{}包裹、内部无其他{}的内容
match_pattern = r'\{[^{}]*\}'
# findall直接返回所有匹配结果组成的列表
output = re.findall(match_pattern, string)

print(output)

运行后输出结果:

['{value="32", font="34"}', '{value="12", font="34"}']

如果原始字符串保留了HTML转义字符",该规则同样可以正常匹配,输出结果会和原字符串中包裹的内容完全一致。

注意事项

  • 该写法仅适用于{}无嵌套的场景,如果待提取内容里存在大括号嵌套(比如{a: {b:1}}),简单正则无法正确匹配,需要额外编写括号层级计数的逻辑处理
  • 规则里用[^{}]*替代通用的.*?非贪婪匹配,兼容字符串内存在换行、特殊符号的场景,匹配稳定性更高

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 17:57:20