为什么用不了强大的re2库?

2014-01-04 16:35:54 +08:00
 pc10201
re2号称是性能很快的正则表达式库,测试中速度比自带的快10倍甚至更多

介绍链接
https://code.google.com/p/re2/
python版的实现
https://pypi.python.org/pypi/re2/
我用pip安装不成功
然后我去下载了
http://www.lfd.uci.edu/~gohlke/pythonlibs/#re2
二进制包,安装成功了,import也没有报错

#coding=utf-8
import re2
print re2.search("(\d{3})\D?(\d{3})\D?(\d{4})", "800-555-1212").groups()
结果
D:\Python27\python.exe S:/12.py
Traceback (most recent call last):
File "S:/12.py", line 4, in <module>
print re2.search("(\d{3})\D?(\d{3})\D?(\d{4})", "800-555-1212").groups()
AttributeError: 'NoneType' object has no attribute 'groups'

难道这个不支持windows么?
7309 次点击
所在节点    Python
4 条回复
lsj5031
2014-01-04 17:15:38 +08:00
呃,看了一眼感觉错误信息是说前面的匹配没有结果啊,所以没法group。
建议检查下正则或者库的使用……
ushuz
2014-01-04 17:18:17 +08:00
恐怕是库使用上的问题吧,windows下标准库re可以匹配到。
pc10201
2014-01-04 17:28:06 +08:00
@lsj5031 代码是取自官方的demo
https://github.com/axiak/pyre2/blob/master/tests/search.txt
我这都无法运行成功
1138825823
2014-04-06 12:44:01 +08:00
这个库的0.2.20版本在pypi和http://www.lfd.uci.edu/~gohlke/pythonlibs/#re2上均存在BUG,可以参见https://github.com/axiak/pyre2/issues/11和https://github.com/axiak/pyre2/issues/14。
所以如果想正确使用的话应该自己去github上下载,然后python setup.py install。安装之前需要编译一下原始的re2包,https://code.google.com/p/re2win/有windows版本下载。之后进行python setup.py install时可能会出现一些小问题,需要修改setup.py的内容,具体可以给我邮件,tanggefu@gmail.com

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/95647

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX