【发布时间】:2017-02-25 13:01:12
【问题描述】:
Go 的标准库中的regexp 很差,所以我需要一个更强大的引擎,比如 Python 中的正则表达式(pip install regex),支持递归、反向引用、前瞻/后视等。
我发现: https://godoc.org/github.com/dlclark/regexp2 .NET 兼容,非常好;但是,递归无法正常工作。
还有几个与 PCRE 的绑定,例如: https://godoc.org/github.com/glenn-brown/golang-pkg-pcre/src/pkg/pcre
那么,如何在 Win64 上使用此绑定?
【问题讨论】:
-
顺便说一句,你知道 Go 有它的
regexp包以这种方式实现 for a reason 吗?要了解允许不确定性 RE 执行时间的 RE 引擎可能导致哪些问题,请从 this 开始。 -
是的,我读过这个。但我不在乎。我在 python 中使用了正则表达式模块来解析我自己编写的“蜘蛛”机器人中的网页。一切正常 =) 有时会崩溃,很少挂起 - 常见问题。
-
在 python 上我使用了多处理,在进行中,我想我需要像超时中止这样的东西
-
顺便说一下,来自 dlclark 的 regexp2 包有超时选项。也许要求 dlclarck 修复递归是合理的......
-
«有时会崩溃,很少挂起 - 常见问题» -- 我真诚地希望您不要在 NASA 或其他关键任务软件上工作。 “让它早早崩溃”是一个很好的范例,但只有当它得到运行时的支持时,它才会发生这种情况,并且能够恢复。但它被命名为 Erlang,而不是 Python。