gpt4 book ai didi

python - 在标记自定义迷你格式时正确考虑多个反斜杠

转载 作者:行者123 更新时间:2023-12-01 05:14:20 25 4
gpt4 key购买 nike

我正在用 Python 编写一个小型分词器,用于自定义迷你格式,如下所示(也可以嵌套):

<tag:some_text>

tag是一组有限值和 some_text 的组合只是文本。分隔符< , :>可以通过单个 \ 来转义如果它们出现在文本中或作为文本。

我使用了正则表达式r"((\\)?[<:>])"以及re.finditer查找分隔符,然后在必要时通过检查 token.startswith('\\') 删除反斜杠。问题是,如果分隔符之前出现更多反斜杠,则正则表达式是错误的,例如"<tag:Some \\\\< text>" -> ['<', 'tag', ':', 'Some \\\\', '<', ' text', '>'] .

我无法找到使用正则表达式的合理解决方案,并且我正在考虑仅用纯Python编写标记化,即没有正则表达式魔法等(但这可能很慢?)或者我是否过于复杂化了?有什么建议吗?

最佳答案

您的正则表达式将仅匹配最后一个反斜杠和分隔符 \<\\\\<

只需添加 +量词,表示( 1 或多次)

((\\+)?[<:>])

关于python - 在标记自定义迷你格式时正确考虑多个反斜杠,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23550991/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com