lorlev / aho-corasick
Aho-Corasick字符串匹配算法的实现。
v1.0.1
2023-04-20 15:22 UTC
Requires
- php: >=7.4.3
Requires (Dev)
- mediawiki/mediawiki-codesniffer: 41.0.0
- mediawiki/minus-x: 1.1.1
- ockcyp/covers-validator: 1.6.0
- php-parallel-lint/php-console-highlighter: 1.0.0
- php-parallel-lint/php-parallel-lint: 1.3.2
- phpunit/phpunit: 9.5.28
This package is not auto-updated.
Last update: 2024-09-20 20:36:38 UTC
README
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' ) )
特性
该算法通过将搜索关键字集构建成有限状态机来工作。构建有限状态机所需的时间与搜索关键字长度的总和成正比。一旦构建完成,该机器就可以在一次遍历中定位任何文本中所有搜索关键字的全部出现,并对每个输入字符进行一次状态转换。
贡献
- 问题追踪器:https://phabricator.wikimedia.org/tag/ahocorasick/
- 源代码:https://github.com/wikimedia/AhoCorasick
支持
如果您遇到问题,请告诉我们。
许可证
该项目采用Apache许可证。