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上使用此绑定?
答案 0 :(得分:0)
您可以考虑使用C ++标准库std::regex
(没有第三方库)。在try
块中包装逻辑,使用catch(...){return ERROR;}
捕获任何错误,并声明C函数extern "C"
,以便您可以使用cgo进行调用。
来自https://github.com/golang/go/wiki/cgo(关于Windows的部分内容):
要在Windows上使用cgo,您还需要先安装一个 gcc编译器(例如,mingw-w64)并且你的gcc.exe(等等) 在使用cgo编译之前,PATH环境变量将起作用。
话虽这么说,我仍然认为你应该考虑坚持使用regexp
包并尝试使正则表达式尽可能简单。因为复杂的正则表达式可能会损害代码的可读性。另一个问题是有时它们会引入难以发现和修复的细微错误。因此,在Go中编写更多代码而不是正则表达式可能会让生活更轻松。