Glob テスター
glob・.gitignoreパターンをファイルパス一覧にマッチし、入力中に一致項目をハイライトします。
^src\/(?:.*\/)?[^/]*\.ts$
このツールについて
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パターンなら期待どおりに動作します。