我智商爆棚
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
yangqiwen 1db2a0abc6 我智商爆棚 10 months ago
..
lib 我智商爆棚 10 months ago
LICENSE 我智商爆棚 10 months ago
README.md 我智商爆棚 10 months ago
package.json 我智商爆棚 10 months ago

README.md

Description

streamsearch is a module for node.js that allows searching a stream using the Boyer-Moore-Horspool algorithm.

This module is based heavily on the Streaming Boyer-Moore-Horspool C++ implementation by Hongli Lai here.

Requirements

Installation

npm install streamsearch

Example

  var StreamSearch = require('streamsearch'),
      inspect = require('util').inspect;

  var needle = new Buffer([13, 10]), // CRLF
      s = new StreamSearch(needle),
      chunks = [
        new Buffer('foo'),
        new Buffer(' bar'),
        new Buffer('\r'),
        new Buffer('\n'),
        new Buffer('baz, hello\r'),
        new Buffer('\n world.'),
        new Buffer('\r\n Node.JS rules!!\r\n\r\n')
      ];
  s.on('info', function(isMatch, data, start, end) {
    if (data)
      console.log('data: ' + inspect(data.toString('ascii', start, end)));
    if (isMatch)
      console.log('match!');
  });
  for (var i = 0, len = chunks.length; i < len; ++i)
    s.push(chunks[i]);

  // output:
  //
  // data: 'foo'
  // data: ' bar'
  // match!
  // data: 'baz, hello'
  // match!
  // data: ' world.'
  // match!
  // data: ' Node.JS rules!!'
  // match!
  // data: ''
  // match!

API

Events

  • info(< boolean >isMatch[, < Buffer >chunk, < integer >start, < integer >end]) - A match may or may not have been made. In either case, a preceding chunk of data may be available that did not match the needle. Data (if available) is in chunk between start (inclusive) and end (exclusive).

Properties

  • maxMatches - < integer > - The maximum number of matches. Defaults to Infinity.

  • matches - < integer > - The current match count.

Functions

  • (constructor)(< mixed >needle) - Creates and returns a new instance for searching for a Buffer or string needle.

  • push(< Buffer >chunk) - integer - Processes chunk. The return value is the last processed index in chunk + 1.

  • reset() - (void) - Resets internal state. Useful for when you wish to start searching a new/different stream for example.