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

如何移除字符串中键的引号?现有Python正则替换代码失效

解决字符串中键名引号移除的问题

我看到你尝试用Python正则表达式把字符串里"key": value格式改成key: value,但现有代码没法正常运行,咱们来一步步搞定这个问题。

原代码的问题分析

你的代码里有两个核心问题:

  • 正则转义混乱:用普通字符串写正则时,双引号的转义处理太繁琐,很容易出错;
  • 组引用错误:你想用\\key引用命名捕获组,但Python正则里命名组的正确引用方式是\\g<key>,而且你还漏掉了原匹配内容里的冒号和空格,导致替换不完整。

修正后的代码

改用原始字符串定义正则能彻底避免转义问题,同时正确引用捕获组完成替换:

import re
mystr = '["key": val, "key2": val, "key3": v, "key5": 34, "key6": "ef"]'
# 原始字符串正则:捕获带双引号的键名,以及后面的": "
key_pattern = r'"(?P<key>\w+)": '
pattern = re.compile(key_pattern)
# 替换为 捕获到的键名 + ": "
result = re.sub(pattern, r'\g<key>: ', mystr)
print(result)

运行后就能得到你想要的结果:

'[key: val, key2: val, key3: v, key5: 34, key6: "ef"]'

小扩展

如果你的键名可能包含下划线、短横线这类合法标识符字符,可以把正则里的\w+改成[\w-]+,这样就能适配更多键名格式啦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.09 09:07:47