Popularity
4.1
Declining
Activity
0.9
Declining
463
7
26

Monthly Downloads: 0
Programming language: JavaScript
License: MIT License
Tags: Text     Regex     String     Match     Pattern     Matching     Filter     Glob     Expression     Regular     Regexp     Wildcard     Minimatch     Matcher     Globbing     Globber    
Latest version: v3.0.0

matcher alternatives and similar modules

Based on the "Text" category

Do you think we are missing an alternative of matcher or a related project?

Add another 'Text' Module

README

matcher Build Status

Simple wildcard matching

Useful when you want to accept loose string input and regexes/globs are too convoluted.

Install

$ npm install matcher

Usage

const matcher = require('matcher');

matcher(['foo', 'bar', 'moo'], ['*oo', '!foo']);
//=> ['moo']

matcher(['foo', 'bar', 'moo'], ['!*oo']);
//=> ['bar']

matcher.isMatch('unicorn', 'uni*');
//=> true

matcher.isMatch('unicorn', '*corn');
//=> true

matcher.isMatch('unicorn', 'un*rn');
//=> true

matcher.isMatch('rainbow', '!unicorn');
//=> true

matcher.isMatch('foo bar baz', 'foo b* b*');
//=> true

matcher.isMatch('unicorn', 'uni\\*');
//=> false

matcher.isMatch('UNICORN', 'UNI*', {caseSensitive: true});
//=> true

matcher.isMatch('UNICORN', 'unicorn', {caseSensitive: true});
//=> false

matcher.isMatch(['foo', 'bar'], 'f*');
//=> true

matcher.isMatch(['foo', 'bar'], ['a*', 'b*']);
//=> true

matcher.isMatch('unicorn', ['tri*', 'UNI*'], {caseSensitive: true});
//=> false

API

It matches even across newlines. For example, foo*r will match foo\nbar.

matcher(inputs, patterns, options?)

Accepts an array of input's and pattern's.

Returns an array of inputs filtered based on the patterns.

matcher.isMatch(input, pattern, options?)

Accepts either a string or array of strings for both input and pattern.

Returns a boolean of whether any given input matches every given pattern.

input

Type: string | string[]

String or array of strings to match.

options

Type: object

caseSensitive

Type: boolean\ Default: false

Treat uppercase and lowercase characters as being the same.

Ensure you use this correctly. For example, files and directories should be matched case-insensitively, while most often, object keys should be matched case-sensitively.

pattern

Type: string | string[]

Use * to match zero or more characters. A pattern starting with ! will be negated.

Benchmark

$ npm run bench
  • matcher-cli - CLI for this module
  • multimatch - Extends minimatch.match() with support for multiple patterns

Get professional support for this package with a Tidelift subscription Tidelift helps make open source sustainable for maintainers while giving companiesassurances about security, maintenance, and licensing for their dependencies.