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

使用Python BBCode库的simple formatter无预期输出,调用方式是否正确?

问题分析与解决

你的add_simple_formatter调用方式本身是正确的,但问题出在多余的正则提取操作上——你先用正则把[p]和[/p]之间的文本单独拎了出来,导致传给parser.format()的内容里根本没有[p]标签,解析器找不到需要处理的BBCode标记,自然只会返回原文本。

正确代码示例

import bbcode

# 初始化解析器并添加p标签的格式化规则
parser = bbcode.Parser()
parser.add_simple_formatter('p', '<p>%(value)s</p>')

text = '[p]I am a text example[/p]'

# 直接传入完整的带BBCode标签的文本,不需要提前提取内容
html = parser.format(text)
print(html)

为什么这样能行?

add_simple_formatter的作用是告诉解析器:当遇到[p]和[/p]包裹的内容时,用你定义的模板<p>%(value)s</p>去替换它。所以必须让解析器看到完整的[p]...[/p]结构,它才能触发对应的格式化逻辑。你之前提前剥离了标签,相当于让解析器处理一段普通文本,当然不会产生你想要的结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 14:30:44