python - 是否可以从 Python 中使用 re2?

标签 python regex re2

我刚刚发现 http://code.google.com/p/re2 ,一个很有前途的库,它使用一种长期被忽视的方式 (Thompson NFA) 来实现一个正则表达式引擎,该引擎可以比 awk、Perl 或 Python 的可用引擎快几个数量级。

所以我下载了代码并做了通常的 sudo make install 事情。但是,该操作似乎只是将 /usr/local/include/re2/re2.h 添加到我的系统中。似乎还有一些 *.a 文件,但是这个 *.a 扩展名是什么?

我想使用 Python 中的 re2(最好是 Python 3.1),并且很高兴在发行版中看到像 make_unicode_groups.py 这样的文件(可能只是在构建过程中使用?)。然而,那些并没有部署在我的机器上。

如何在 Python 中使用 re2?


update 两个友好的人指出我可以尝试从源代码构建 DLLs/*.so 文件,然后使用 Python 的 ctypes 库来访问这些文件。谁能提供有用的指示如何做到这一点?我在这里几乎一无所知,尤其是第一部分(构建 *.so 文件)。


更新我也将这个问题(较早)发布到 re2 developers’ group , 到现在都没有回复(是小群),今天回复到了(人比较多的)comp.lang.py[—thread here—] .希望各个角落的人可以互相联系。我的猜测是一个熟练的人可以在他们的 20% your-free-time-belongs-google-too 时间片内的几个小时内做到这一点;它会束缚我好几个星期。 是否有一种工具可以自动将 C++ 简化为 Python 需要能够连接的任何 C 风格?那么也许可以将获得可行的结果简化为巧妙的工具链。

(咆哮)为什么这么难?想想2010年我们还是不能让我们丰富的软件互相交流。这是一个如此大的障碍,以至于无论何时你想从 Python 中处理一些 C 代码,你都必须总是处理这些链接位。这需要做很多工作,但只提供了一个特定于 C 代码版本和 Python 版本的扩展模块,因此它老化得很快。(/rant) 是否有可能在单独的进程中运行这些东西(比如说,如果我有一个 re2 可执行文件,它可以为传入的数据产生结果,比如说,subprocess/Popen/communicate())?(这应该不是一个纯粹的命令行工具,每次需要时都需要打开一个进程,而是一个连续运行的单个进程;也许存在某种“妖魔化”此类 C 代码的包装器。

最佳答案

David Reiss 为 re2 组合了一个 Python 包装器。它没有 Python 的 re 模块的所有功能,但它是一个开始。可在此处获得:http://github.com/facebook/pyre2 .

关于python - 是否可以从 Python 中使用 re2?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2439345/

相关文章:

python - 如何在转移后留下 NaN

python - 将 float 转换为 int,以便保留所有信息或如何获取长 float 的长度

python - webapp2 是否提供某种机制来调用 HTML 表单中的 DELETE 和 PUT 操作

PHP正则表达式匹配包含年份的句子

在谷歌数据工作室中使用lookbehind和google-re2进行正则表达式提取

python - 将击键发送到特定窗口(在后台),但同时做其他事情

regex - MOD_REWRITE 用于 URL 变量,删除空参数并为第一个和第二个变量使用多个字段

Python 正则表达式 - 查找子字符串中的多个字符

regex - 如何使用正则表达式将条件格式规则应用于整行

regex - 使用 REGEX Google Data Studio 替换完整的引荐来源网址