我使用python包ahocorasick(https://hkn.eecs.berkeley.edu/~dyoo/python/ahocorasick/)来匹配这里的状态名:
import ahocorasick
states = {
'AK': 'Alaska',
'AL': 'Alabama',
'AR': 'Arkansas',
'AS': 'American Samoa',
'AZ': 'Arizona',
'CA': 'California',
'CO': 'Colorado',
'CT': 'Connecticut'
}
def LoadKeywords(keywords):
#Keyword should be a list
tree = ahocorasick.KeywordTree()
for k in keywords:
tree.add(k)
tree.make()
return tree
keywordLong = states.values();
keywordLongTree = LoadKeywords(keywordLong);
然后我试着去搜索
^{pr2}$它回来了
(0, 7)
这很好而且合法,但是当我这么做的时候
keywordLongTree.search("I don't know why this happen")
它应该返回一个NONE对象,但它返回:
(145331, 145335)
以前有人遇到过这种情况吗?为什么会这样?在
我也遇到了同样的问题。这应该是模块的缺陷。毕竟,它从2005年起就没有修改过。我改用了https://code.google.com/p/esmre/。找到了。试一试!在
相关问题 更多 >
编程相关推荐