简体中文
Aho–Corasick / exact text matching
用原文字素匹配多个关键词,以可直接切片的范围处理命中。观察每次转移、回退,以及后缀如何成为结果。
本站介绍已在 npm 发布的 v3.2.0。 MIT · SonOfMagic · BrunoRB/ahocorasick
从任务开始
先选需要的结果,再随着应用增长继续复用同一个匹配器。
需要记住的契约
每个结果都使用左闭右开的 UTF-16 范围,因此命中文本始终可以用 text.slice(start, end) 取得。Emoji、组合字符和 CRLF 都会作为完整字素处理。
const text = '😀 café'
const hit = new AhoCorasick(['café']).search(text)[0]
text.slice(hit.start, hit.end)
// 'café'继续探索