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

如何用正则表达式去除大括号内的最后一个逗号?

解决方案

要去除大括号内紧邻}的最后一个逗号,可以用下面的正则替换实现:

import re

cypher_query = "match n:chocolate{chocolate:$chocolate, icecream:'snowcone', donut:$donut, chocolate:$chocolate,}) return n"
new_query = re.sub(r'(\{[^}]+),(\s*\})', r'\1\2', cypher_query)
print(new_query)

运行后会输出目标结果:

match n:chocolate{chocolate:$chocolate, icecream:'snowcone', donut:$donut, chocolate:$chocolate}) return n

正则逻辑说明

  • (\{[^}]+):捕获组1,匹配{开头,加上大括号内所有非}的字符(覆盖到最后一个逗号之前的全部内容)
  • ,(\s*\}):匹配需要删除的目标逗号,以及后面可能存在的空白字符和},将}及空白放入捕获组2
  • 替换为\1\2:拼接两个捕获组的内容,相当于直接去掉了中间的多余逗号

原正则的问题

你写的\{\,$\}完全不匹配目标场景:

  • 这个正则要求字符串以{,开头、以}结尾,而你的目标字符串结构完全不符合这个规则,因此根本匹配不到任何内容,自然无法完成替换

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 15:45:46