wikimedia/aho-corasick

Aho-Corasick字符串匹配算法的实现。

v2.0.0 2023-11-20 15:14 UTC

This package is auto-updated.

Last update: 2024-09-11 00:10:23 UTC


README

Packagist.org

AhoCorasick

AhoCorasick是PHP实现的Aho-Corasick字符串搜索算法,这是一种在文本中高效搜索多个搜索关键字的方法。

以下是使用方法

use AhoCorasick\MultiStringMatcher;

$keywords = new MultiStringMatcher( array( 'ore', 'hell' ) );

$keywords->searchIn( 'She sells sea shells by the sea shore.' );
// Result: array( array( 15, 'hell' ), array( 34, 'ore' ) )

$keywords->searchIn( 'Say hello to more text. MultiStringMatcher objects are reusable!' );
// Result: array( array( 4, 'hell' ), array( 14, 'ore' ) )

特性

该算法通过构造一组搜索关键字的有限状态机来工作。构造有限状态机所需的时间与搜索关键字长度的总和成正比。一旦构造完成,该机器就可以在单次遍历中找到任何文本中所有搜索关键字的所有出现,每输入一个字符进行一次状态转换。

该算法源于Alfred V. Aho和Margaret J. Corasick撰写的《Efficient string matching: an aid to bibliographic search》(CACM,第18卷,第6期,1975年6月)。

有关nist.gov上的定义和参考实现,请参阅nist.gov

贡献

支持

如果您遇到问题,请告诉我们

许可证

本项目采用Apache许可证。