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

Python如何按方括号[]拆分字符串并保留括号内容到列表

解决方案

直接使用Python正则模块re的split()方法即可实现需求,核心逻辑是用带捕获组的正则表达式匹配所有被方括号包裹的内容,re.split()会自动将捕获到的分隔符也插入到结果列表中,最后过滤掉空字符串即可。

完整代码示例

import re

# 注意不要用str作为变量名,会覆盖Python内置字符串类型
origin_str = "I wish to have a[dancing marshmellow]cat,[becase I am the]best loki joki ipock"
# 正则说明:(\[.*?\]) 匹配所有被[]包裹的内容,外层括号是捕获组,会保留匹配到的方括号内容
result = [i for i in re.split(r'(\[.*?\])', origin_str) if i]
print(result)

运行输出

['I wish to have a', '[dancing marshmellow]', 'cat,', '[becase I am the]', 'best loki joki ipock']

原方法问题说明

你之前直接用str.split("[")只会按[切割字符串,既不会保留分隔符,也不会匹配闭合的],所以无法得到预期结果。正则中使用的.*?是非贪婪匹配规则,可以保证只会匹配到最近的],不会把多段方括号内容合并。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 08:24:10