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

如何为字符串格式列表内的字符串添加引号?正则表达式该如何调整?

问题原因

  • 你写的正则r',(\w*)'只匹配逗号后方的内容,列表第一个元素abc前没有逗号,不会被匹配到,自然不会加引号
  • 逗号和下一个元素之间有空格,\w*无法匹配空格,最终分组\1捕获到的是空值,才会出现"" bca的错误输出

解决方法

不需要匹配逗号,直接匹配所有列表元素的内容(连续的\w字符),直接替换为带引号的格式即可,调整后的代码如下:

import re

input_str='[abc, bca]'
output_str = re.sub(r'(\w+)', r'"\1"', input_str)

print(output_str)

运行后输出就是你需要的["abc", "bca"]。

如果你的列表元素可能包含横杠、点这类不属于\w的字符,可以调整匹配规则,匹配除了方括号、逗号、空格之外的所有字符,兼容性更强:

output_str = re.sub(r'([^,\[\]\s]+)', r'"\1"', input_str)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 09:36:03