JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 9
  • Score
    100M100P100Q67429F
  • License ISC

Aho–Corasick string matching algorithm

Package Exports

  • aho-corasick2
  • aho-corasick2/package.json
  • aho-corasick2/src/index.cts

Readme

aho-corasick2

aho-corasick2 - Aho–Corasick string matching algorithm

Installation

$ npm install aho-corasick2

應用

Example

API

import * as AhoCorasick from 'aho-corasick2';
import AhoCorasick from 'aho-corasick2';
import AhoCorasick = require('aho-corasick2');
  • search
var i, len, ref, word;

var ac = new AhoCorasick();

ref = ['say', 'she', 'shr', 'he', 'her', 'h', 'hers', 'his'];

for (i = 0, len = ref.length; i < len; i++)
{
    word = ref[i];
    ac.add(word, {
        word: word
    });
}

ac.build_fail();

console.dir(ac, {
    depth: null,
    colors: true,
});

let actual = ac.search('yasherhs');
/*
{ matches: { h: [ 3, 6 ], she: [ 2 ], he: [ 3 ], her: [ 3 ] },
  positions: { '2': [ 'she' ], '3': [ 'h', 'he', 'her' ], '6': [ 'h' ] },
  count: { h: 2, she: 1, he: 1, her: 1 },
  data:
   { h: [ { word: 'h' } ],
     she: [ { word: 'she' } ],
     he: [ { word: 'he' } ],
     her: [ { word: 'her' } ] } }
 */

console.dir(actual, {
    depth: null,
    colors: true,
});

build graphviz dot

        ac = new AhoCorasick()
        ac.add word, word:word for word in ['say', 'she', 'shr', 'he', 'her']
        ac.build_fail()
        console.log ac.to_dot()

save output as trie.dot and

$ dot -Tpng trie.dot -o trie.png

You also need to install GraphViz

Author

Dejian Xu Google+

Thanks

References

wikipedia: Aho-Corasick