【发布时间】:2012-03-19 11:41:11
【问题描述】:
有没有办法将re.findall 或更好的re.finditer 功能应用于流(即打开文件句柄以供读取)?
请注意,我不是假设要匹配的模式完全包含在一行输入中(即允许多行模式)。我也没有假设最大匹配长度。
确实,在这个通用级别上,可以指定一个要求正则表达式引擎访问整个字符串的正则表达式(例如r'(?sm).*'),当然,这意味着必须将整个文件读入内存,但目前我并不关心这种最坏的情况。毕竟,完全可以编写多行匹配的正则表达式,而 不需要 需要将整个文件读入内存。
是否可以从已编译的正则表达式访问底层自动机(或内部使用的任何东西),为其提供字符流?
谢谢!
编辑:添加了关于多行模式和匹配长度的说明,以回应 Tim Pietzcker 和 rplnt 的回答。
【问题讨论】:
-
感谢您的编辑 - 我已经更新了我的答案。