matcher

Simple wildcard matching

  • Owner: sindresorhus/matcher
  • Platform:
  • License:: MIT License
  • Category::
  • Topic:
  • Like:
    0
      Compare:

Github stars Tracking Chart

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

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

Main metrics

Overview
Name With Ownersindresorhus/matcher
Primary LanguageJavaScript
Program languageJavaScript (Language Count: 2)
Platform
License:MIT License
所有者活动
Created At2016-02-05 06:58:04
Pushed At2021-10-03 09:29:45
Last Commit At
Release Count11
Last Release Namev5.0.0 (Posted on 2021-10-03 16:29:33)
First Release Namev0.1.0 (Posted on 2016-02-05 14:07:28)
用户参与
Stargazers Count540
Watchers Count5
Fork Count29
Commits Count42
Has Issues Enabled
Issues Count19
Issue Open Count3
Pull Requests Count12
Pull Requests Open Count0
Pull Requests Close Count4
项目设置
Has Wiki Enabled
Is Archived
Is Fork
Is Locked
Is Mirror
Is Private