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

如何用Python正则表达式将方括号内容替换为括号内第一个候选项

正则多组方括号独立替换为首个候选项方案

你现有代码的问题在于,先通过re.findall提取到所有匹配结果后固定取了第一个结果的值,再将整行中所有符合规则的方括号统一替换为这个固定值,所以所有方括号最终都替换成了第一组的首个候选项。

使用re.sub的回调参数即可实现每组匹配独立处理,每匹配到一对方括号就单独提取当前组的首个候选项完成替换,正确代码如下:

import re
line = "[ choice A | choice B ] and choose between [ choice D | choice F ]"
# 每匹配到一组方括号就提取|前的内容去空格后替换当前匹配项
line = re.sub(r"\[(.*?)\|.*?\]", lambda match: match.group(1).strip(), line)
print(line)

运行后输出结果为:
choice A and choose between choice D

实现逻辑说明:正则r"\[(.*?)\|.*?\]"会完整匹配整对方括号内容,其中第一个捕获组(.*?)匹配|之前的所有内容,回调函数每次拿到当前匹配的捕获组内容处理后返回,即可实现每组方括号独立替换。

内容的提问来源于stack exchange,提问作者M.A.G

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 10:15:03