An open API service indexing awesome lists of open source software.

https://github.com/saracen/matcher

Matcher is a fast path matcher/globber supporting globstar/doublestar
https://github.com/saracen/matcher

doublestar glob globstar golang path-matcher path-matching

Last synced: 6 months ago
JSON representation

Matcher is a fast path matcher/globber supporting globstar/doublestar

Awesome Lists containing this project

README

          

# matcher

`matcher` is similar to `path.Match`, but:

- Supports globstar/doublestar (`**`).
- Provides a fast `Glob` function.
- Supports combining matchers.

## Examples

### Match

```golang
package main

import "github.com/saracen/matcher"

func main() {
matched, err := matcher.Match("hello/**/world", "hello/foo/bar/world")
if err != nil {
panic(err)
}

if matched {
// do something
}
}
```

### Glob

```golang
package main

import "github.com/saracen/matcher"

func main() {
matches, err := matcher.Glob(context.Background(), ".", matcher.New("**/*.go"))
if err != nil {
panic(err)
}

// do something with the matches
_ = matches
}
```

### Glob with multiple patterns

```golang
package main

import "github.com/saracen/matcher"

func main() {
matcher := matcher.Multi(
matcher.New("**/*.go"),
matcher.New("**/*.txt"))

matches, err := matcher.Glob(context.Background(), ".", matcher)
if err != nil {
panic(err)
}

// do something with the matches
_ = matches
}
```