Skip to content
Glob to regular expression with support for extended globs.
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.
package.json Updated dependencies Feb 8, 2019



Simple but powerful glob to regular expression compiler.


npm install globrex --save

Core Features

  • 💪 extended globbing: transform advance ExtGlob features
  • 📦 simple: no dependencies
  • 🛣️ paths: split paths into multiple RegExp segments


const globrex = require('globrex');

const result = globrex('p*uck')
// => { regex: /^p.*uck$/, string: '^p.*uck$', segments: [ /^p.*uck$/ ] }

result.regex.test('pluck'); // true


globrex(glob, options)

Type: function
Returns: Object

Transform globs intp regular expressions. Returns object with the following properties:


Type: RegExp

JavaScript RegExp instance.

Note: Read more about how to use RegExp on MDN.


This property only exists if the option filepath is true.

Note: filepath is false by default


Type: Array

Array of RegExp instances seperated by /. This can be usable when working with file paths or urls.

Example array could be:

[ /^foo$/, /^bar$/, /^([^\/]*)$/, '^baz\\.(md|js|txt)$' ]


Type: RegExp

JavaScript RegExp instance build for testign against paths. The regex have different path seperators depending on host OS.


Type: String

Glob string to transform.


Type: Boolean
Default: false

Enable all advanced features from extglob.

Matching so called "extended" globs pattern like single character matching, matching ranges of characters, group matching, etc.

Note: Interprets [a-d] as [abcd]. To match a literal -, include it as first or last character.


Type: Boolean
Default: false

When globstar is false globs like '/foo/*' are transformed to the following '^\/foo\/.*$' which will match any string beginning with '/foo/'.

When the globstar option is true, the same '/foo/*' glob is transformed to '^\/foo\/[^/]*$' which will match any string beginning with '/foo/' that does not have a '/' to the right of it. '/foo/*' will match: '/foo/bar', '/foo/bar.txt' but not '/foo/bar/baz' or '/foo/bar/baz.txt'.

Note: When globstar is true, '/foo/**' is equivelant to '/foo/*' when globstar is false.


Type: Boolean
Default: false

Be forgiving about mutiple slashes, like /// and make everything after the first / optional. This is how bash glob works.


Type: String
Default: ''

RegExp flags (e.g. 'i' ) to pass to the RegExp constructor.


Type: Boolean
Default: false

Parse input strings as it was a file path for special path related features. This feature only makes sense if the input is a POSIX path like /foo/bar/hello.js or URLs.

When true the returned object will have an additional path object.

  • segment: Array containing a RegExp object for each path segment.
  • regex: OS specific file path RegExp. Path seperator used is based on the operating system.
  • globstar: Regex string used to test for globstars.

Note: Please only use forward-slashes in file path glob expressions Though windows uses either / or \ as its path separator, only / characters are used by this glob implementation. You must use forward-slashes only in glob expressions. Back-slashes will always be interpreted as escape characters, not path separators.


Learn more about advanced globbing here


MIT © Terkel Gjervig

You can’t perform that action at this time.