python – 标记复杂输入
发布时间:2020-12-20 13:24:29 所属栏目:Python 来源:网络整理
导读:我试图在 Python中标记以下输入: text = 'This @example@ is "neither":/defn/neither complete[1] *nor* trite,*though _simple_*.' 我想在避免使用正则表达式的同时生成类似下面的内容: tokens = [ ('text','This '),('enter','code'),('text',"example"
我试图在
Python中标记以下输入:
text = 'This @example@ is "neither":/defn/neither complete[1] *nor* trite,*though _simple_*.' 我想在避免使用正则表达式的同时生成类似下面的内容: tokens = [ ('text','This '),('enter','code'),('text',"example") ('exit',None),' is '),'a'),"neither"),('href',"/defn/neither"),('exit',' complete'),'footnote'),('id',1),' '),'strong'),'nor'),' trite,'),'though '),'em'),'simple'),'.') ] 假装上面是由发电机产生的.我的current implementation工作,虽然代码有点可怕,不容易扩展到支持链接. 任何帮助将不胜感激. 更新以将所需语法从复杂的嵌套列表结构更改为简单的元组流.为我们人类缩进.在链接文本中格式化是可以的.这是a simple parser生成我正在寻找的lexing结果,但仍然不处理链接或脚注. 解决方法
那么,here’s a more complete parser具有足够的可扩展性来做我将来可能需要的任何事情.它只花了三个小时.它并不是非常快速,但通常我写的解析器类的输出无论如何都是高度缓存的.即使使用了这个标记器和解析器,我的完整引擎仍然在<默认python-textile渲染器的SLoC的75%,同时保持更快.所有没有正则表达式. 脚注解析仍然存在,但与链接解析相比,这是次要的.输出(截至本文)是:
tokens = [ ('text','example'),'neither'),('attr','/defn/neither')),' complete[1] '),'.') ] (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |