acora酒店是'fgrep一样'的Python,一个快速的多关键字的文本搜索引擎。
基于一组关键字,它会产生一个搜索自动机(DFA),并在字符串输入运行它,Unicode或字节。
acora酒店是基于阿霍Corasick算法和NFA到DFA幂施工。
acora酒店配有两个纯Python实现,并写在用Cython快速二进制模块。
如何使用?
导入包:
>>>从acora酒店进口AcoraBuilder
收集一些关键词:
>>>建设者= AcoraBuilder('AB','BC','德')
>>> builder.add('A','B')
产生的电流参数设置的acora酒店搜索引擎:
>>> AC = builder.build()
搜索字符串的所有出现:
>>> ac.findall(“ABC”)
[('一',0),('ab'开始,0),('B',1),(“BC”,1)]
>>> ac.findall('ABDE“)
[('一',0),('ab'开始,0),('B',1),('德',2)]
遍历搜索结果,因为他们进来:
>>>对千瓦,在POS ac.finditer('ABDE'):
...打印(“%2S [%D]”%(KW,POS))
 一个[0]
从头[0]
  B [1]
德[2]
常见问题解答和配方
1.我怎么运行一个贪婪搜索的最长匹配关键字?
  >>>建设者= AcoraBuilder('A','AB','ABC')
  >>> AC = builder.build()
 对于>>>千瓦,POS在ac.finditer('abbabc'):
  ...打印(KW)
 一
  AB
 一
  AB
  ABC
 从>>>进口itertools GROUPBY
 从>>>进口经营者itemgetter
  >>>高清longest_match(匹配):
  ...适用于POS,match_set在GROUPBY(火柴,itemgetter(1)):
  ...产量最大(match_set)
 对于>>>千瓦,POS在longest_match(ac.finditer('abbabc')):
  ...打印(KW)
  AB
  ABC
2.我怎么解析线逐线,为fgrep一样,不过它任意行尾?
  >>>高清group_by_lines(S *,关键词):
  ...建设者= AcoraBuilder(' r',即' N',*关键字)
  ... AC = builder.build()
  ...
  ... current_line_matches = []
  ... last_ending =无
  ...
  ...用于千瓦,在ac.finditer(S)POS:
  ......如果千瓦' r n'的
  ......如果last_ending ==' r'和千瓦==' n'的
  ...继续#结合CRLF
  ...产量元组(current_line_matches)
  ...德尔current_line_matches [:]
  ... last_ending =千瓦
 其他...:
  ... last_ending =无
  ... current_line_matches.append(KW)
  ...产量元组(current_line_matches)
  >>> kwds = ['AB','BC','德']
  >>>在group_by_lines比赛('A r r NBC r ndede ñ逮到',* kwds):
  ...打印(火柴)
 ()
 ()
 (“BC”,)
 ('德','德')
 ()
 ('AB',)
功能:
- 工作与Unicode字符串和字节串
- 在约2-3倍一样快Python的大部分输入正则表达式引擎
- 在发现重叠的比赛,所有的关键字,即所有的比赛
- 为不区分大小写的支持(10倍〜尽可能快地“重新')
- 释放GIL,而搜索
- 在附加(缓慢但短)纯Python执行
- 支持Python的2.5+和3.x
- 在搜索中的文件支持
- 在宽松的BSD许可证
什么在此版本中是新的:
- 的预建的搜索引擎支持咸菜李>
- 在性能建设者最佳化
- 在Unicode的解析优化为Python 3.3和更高版本
- 不再重新编译源安装用Cython时,除非--with-用Cython选项传递给setup.py(需要用Cython 0.20 +)
- 在构建失败,最近用Cython版本
- 在使用用Cython 0.20.1内置
什么是1.6版本的新:
- 在大大加快建立自动
- 不再包含在源代码分发.hg回购
- 在使用用Cython 0.15(RC0)建
什么版本1.5是新的:
- 在用Cython编译NFS-2-DFA建设大大加快运行
- 在即使未安装用Cython总是构建扩展模块
- - 没有编译在setup.py开关,以防止扩展模块建设
- 在使用用Cython 0.14.1(RC2)建
什么,版本1.4中新的:
- 在轻微加速在内的搜索引擎循环李>
- 在一些代码清理
- 在使用用Cython 0.12.1建(最终)
要求:
- 在Python的
评论没有发现