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

Python正则替换问题:将{keyword:日文}格式替换为'keyword'

解决Python正则替换{keyword: xxx}子串的问题

首先,你的问题核心是无法匹配到{keyword: 内容}格式的子串,导致替换操作完全没生效。这是因为你写的正则只限定了特定范围的字符,而输入里的内容(比如中文、乱码字符)不在这个范围内,正则根本没识别到目标内容。

正确的解决方案

我们只需要匹配{keyword:开头,然后匹配任意非}的字符直到闭合的},就能覆盖所有这类子串。用这个正则表达式就够了:r"\{keyword:[^}]+\}"

下面是完整的测试代码,包含你给出的所有测试场景:

import re

# 测试你的原始输入字符串
s = '{keyword: 閮ㄥ眿}銇勩亜銇� {keyword: 鍏湌}銇逗楹椼仹銇� 绉併伅{keyword: 閮ㄥ眿鎹滄熁}銇с仚銆�'
# 执行替换操作
t = re.sub(r"\{keyword:[^}]+\}", 'keyword', s)
print(t)

运行后输出会是:

keyword銇勩亜銇� keyword銇逗楹椼仹銇� 绉併伅keyword銇с仚銆�

为什么原来的正则不生效?

你之前写的r"\{keyword:[銇�銈撱偄-銉充竴-]+\}"存在两个关键问题:

  1. 字符范围[銇�銈撱偄-銉充竴-]只包含了一小部分特定的乱码字符,无法覆盖输入里的中文、其他符号等内容;
  2. 这个范围的写法有语法问题,-在字符集里如果不是用来表示连续范围(比如a-z),需要转义或者放在开头/结尾,否则会被解析成无效范围,导致正则匹配逻辑出错。

而[^}]是一种否定字符集,表示匹配除了}之外的任意字符——不管是中文、乱码、空格还是其他符号,都能被正确匹配到,完美解决你的需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 08:40:20