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

特殊字符间字符串提取:从给定文本中提取id:value格式内容

嘿,我来帮你搞定这个字符串提取的需求!下面给你几种实用的方法,你可以根据自己的场景选:

从类JSON字符串中提取目标内容的方法

方法1:正则表达式匹配

这招直接精准,适合快速提取固定格式的内容。我们用正则匹配每个{}包裹的内部内容:

import re

input_str = "[{id1:value1,id2:value2},{id1:value1a,id2:value2a}]"
# 匹配所有{}内的内容,非贪婪模式避免匹配过度
matches = re.findall(r'{(.*?)}', input_str)

# 输出结果
for item in matches:
    print(item)

运行后就能得到你要的:

id1:value1,id2:value2
id1:value1a,id2:value2a

方法2:手动字符串处理

如果不想依赖正则,直接对字符串做切片和拆分也能轻松实现:

input_str = "[{id1:value1,id2:value2},{id1:value1a,id2:value2a}]"
# 先去掉首尾的方括号
stripped_str = input_str[1:-1]
# 按"},{"拆分字符串,得到两个带{}的子串
raw_items = stripped_str.split('},{')
# 去掉每个子串首尾的大括号
target_items = [item.strip('{}') for item in raw_items]

# 输出结果
for item in target_items:
    print(item)

这个方法逻辑清晰,适合理解字符串结构的场景。

方法3:借助JSON解析(更稳妥)

原字符串是类JSON格式,只是键没有加引号。我们先补全引号转成合法JSON,再解析后格式化,这种方法对复杂内容兼容性更好:

import json
import re

input_str = "[{id1:value1,id2:value2},{id1:value1a,id2:value2a}]"
# 给所有键加上双引号,转成合法JSON格式
valid_json_str = re.sub(r'(\w+):', r'"\1":', input_str)
# 解析JSON为Python列表
data_list = json.loads(valid_json_str)
# 把每个字典转成你要的字符串格式
target_items = [','.join([f"{key}:{val}" for key, val in obj.items()]) for obj in data_list]

# 输出结果
for item in target_items:
    print(item)

要是你的字符串后续可能出现特殊字符(比如值里有逗号、引号),这种方法会比前两种更可靠。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 08:13:10