UnQTools
Developer Runs in your browser

Glob Pattern Tester

Test glob patterns against file paths with *, **, ?, [abc], [a-z], [!x], and {a,b} brace expansion. Convert glob to regex, explain each token, highlight matches, and resolve multi-pattern include/exclude sets. Four flavors: shell glob, .gitignore, minimatch/picomatch, and tsconfig. Toggle case-sensitivity, dot (hidden files), and globstar. Directory tree view, sample paths, presets, history (localStorage), and shareable URL. 100% client-side.

100% Private Works Offline Instant

About Glob Pattern Tester

Test glob patterns against file paths with *, **, ?, [abc], [a-z], [!x], and {a,b} brace expansion. Convert glob to regex, explain each token, highlight matches, and resolve multi-pattern include/exclude sets. Four flavors: shell glob, .gitignore, minimatch/picomatch, and tsconfig. Toggle case-sensitivity, dot (hidden files), and globstar. Directory tree view, sample paths, presets, history (localStorage), and shareable URL. 100% client-side. Everything runs locally in your browser — your data never leaves your device.

How to use

  1. Enter your input in the tool above.
  2. Adjust any options to your preference.
  3. Use the Copy or Download buttons to save the result.
  4. Everything happens locally — your data never leaves your browser.

FAQ

Which glob syntax features are supported?

All five core wildcards: `*` (any chars except `/`), `**` (globstar — crosses `/` when enabled), `?` (single char), `[abc]` / `[a-z]` / `[!xyz]` (character classes with negation), and `{a,b,c}` (brace expansion). Backslash path separators are auto-normalized to forward slashes; regex-special literal chars (`.`, `+`, `(`, `)`, etc.) are auto-escaped so they match literally.

What's the difference between the four flavors?

(1) Shell glob — POSIX bash/zsh behavior. (2) .gitignore — trailing `/` matches directories only, leading `/` anchors to the gitignore file's directory, `!` prefix negates (un-ignores). (3) minimatch / picomatch — npm/webpack/eslint/ripgrep --glob semantics, equivalent to shell with globstar on. (4) tsconfig — TypeScript's include/exclude field semantics, equivalent to minimatch.

How do include + exclude (negation) patterns work?

Add multiple patterns and toggle each as Include or Exclude. A path is included only if at least one Include pattern matches AND no Exclude pattern matches. With no Include patterns, everything is included by default (then Exclude filters apply). For gitignore flavor, you can also use the `!` prefix directly in the pattern text — the tester treats it the same way.

How does the dot toggle work?

When dot is off (default), `*` and `?` will NOT match a leading `.` in a filename — so `*` matches `foo.txt` but not `.env`. This mirrors the standard shell/gitignore default. Toggle dot on to match dotfiles with `*`.

What extra features does this tool have versus other glob testers?

(1) Four flavors: shell, .gitignore, minimatch/picomatch, tsconfig. (2) Multi-pattern include/exclude with negation `!`. (3) Per-token explanation of every wildcard in the pattern. (4) Glob → regex conversion with the source string shown. (5) Match highlighting — which parts of each path matched. (6) Directory tree view of all paths with matched/unmatched/excluded colors. (7) Three toggles: case-sensitive, dot (hidden files), globstar. (8) Brace `{a,b,c}` and char-class `[a-z]` / `[!x]` support with examples. (9) Windows backslash path normalization. (10) Sample path tree loader + preset patterns. (11) Copy matched list / shareable URL. (12) Stats (total / matched / unmatched / excluded). (13) History (localStorage, last 20). 100% client-side — your paths are never uploaded, no ads.

Search tools and actions

Search across all 616 tools, categories, and quick actions.