您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

Python正则表达式解析流

Python正则表达式解析流

我有同样的问题。首先想到的是实现一个LazyString类,该类的作用类似于字符串,但仅从流中读取当前所需的数据(我通过重新实现__getitem____iter__提取和缓冲字符直到访问的最高位置来完成此操作……)。

这没有解决(我从中得到了“ TypeError:期望的字符串或缓冲区” re.match),因此我re对标准库中模块的实现进行了一些研究。

不幸的是,似乎无法在流上使用正则表达式。模块的核心是用C实现的,该实现期望整个输入立即存储在内存中(我猜主要是出于性能方面的考虑)。似乎没有简单的方法可以解决此问题。

我也看过PYL(Python LEX / YACC),但是他们的词法分析器在re内部使用,因此无法解决问题。

一种可能是使用支持Python后端的ANTLR。它使用纯python代码构造词法分析器,并且似乎能够对输入流进行操作。因为对我来说问题并不那么重要(我不希望我的投入很大),所以我可能不会对此做进一步的研究,但这可能值得一看。

python 2022/1/1 18:45:10 有320人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶