ubin.sh

Glob テスター

glob・.gitignoreパターンをファイルパス一覧にマッチし、入力中に一致項目をハイライトします。

/

^src\/(?:.*\/)?[^/]*\.ts$

パス一覧
15件中 2件 一致
src/index.ts
src/app/page.tsx
src/app/layout.tsx
src/components/Button.tsx
src/components/Button.test.tsx
src/lib/utils.ts
src/styles/main.css
public/favicon.ico
public/logo.svg
README.md
package.json
tsconfig.json
.eslintrc.json
dist/index.js
dist/index.js.map

このツールについて

globパターンとファイルパス一覧を入力すると、どちらを編集しても一致するパスがリアルタイムで点灯します。*、**(ディレクトリをまたぐglobstar)、?、[abc]文字クラス、{a,b}波括弧、ルート固定の先頭/、ディレクトリ用の末尾/、否定の先頭!に対応します。スラッシュのないパターンは.gitignoreのようにパスのbasenameにも一致します。

CIのパスフィルタ、tsconfigのinclude/exclude、.gitignoreルール、バンドラーのglobをコミット前に確認するのに便利です。コンパイルされた正規表現も表示されるので、パターンがどう解釈されるか正確に分かります。

よくある質問

*と**の違いは何ですか?+

単一の*は1つのパスセグメント内でのみ一致しスラッシュを越えません。そのためsrc/*.tsはsrc/a.tsには一致しますがsrc/sub/a.tsには一致しません。globstar **はディレクトリ境界を越えるので、src/**/*.tsはsrc配下の任意の深さに一致します。

*.tsがなぜsrc/app.tsに一致するのですか?+

スラッシュのないパターンは.gitignoreのようにパスのbasenameにも一致します。トップレベルのファイルだけに一致させるには先頭スラッシュ(/*.ts)で固定してください。

ディレクトリとその中身すべてに一致させるには?+

dir/** を使います — ディレクトリ自体とその配下のすべてのパスに一致します。末尾スラッシュ(dir/)はディレクトリ項目に一致します。

.gitignoreの意味を正確に踏襲しますか?+

一般的なケース(globstar、basename一致、否定、固定)はカバーしますが、完全なgit実装ではありません — 複数ルールの順序や一部のエッジケースは異なります。一度に1パターンなら期待どおりに動作します。

関連ツール