ファイルパスとワイルドカード

globパターンテスター使うライブラリで確かめる

パターンは一つ、候補パスは一行に一つ。照合するライブラリとオプションは入力欄の下で選べます。

globパターンテスター

候補パス

パターンとパスはブラウザー内で処理され、ファイルの読み取りや変更は行いません。

パスごとの結果

パターンと候補パスを一つ以上入力してください。

照合オプション

Windows区切りではパターンとパスの\を/へ変換します。\でエスケープする場合はPOSIXを選択してください。文字の大小は別設定です。

パターンは一つ。空行は飛ばし、空白と重複は保持します。!と#は選択したライブラリの規則に従います。

上限:パターン256、候補200行、各パス512、合計131,072 UTF-16コード単位。minimatch展開1,000件、処理2秒。

結果が古いか、計算中です。

ビルド対象に余計なファイルが入る、監視対象から深い階層だけ漏れる。そんなときはglobパターンテスターで候補一覧を固定し、設定を一つずつ変更すると原因を絞れます。成功例と失敗例を同じ一覧に置けば、変更の影響も見落としにくくなります。

ワイルドカードの見た目が同じでも、呼び出すライブラリによって解釈は変わります。globパターンのテストでは依存関係とオプションの確認が先です。glob to regexの変換結果だけで互換性を判断せず、実際に使用するminimatchまたはpicomatchの結果を確認してください。

globパターンテスターで確認できること

階層の違いを候補ごとに見る

globパターンテスターは入力時の行番号を結果に残します。src/*.tsとsrc/**/*.tsを比べると、直下のファイルと深い場所のファイルを区別できます。対象一覧を書き換えずに、どの階層まで拾うかを試せます。

直下のファイルだけを選ぶ状態と、入れ子のフォルダーまで選ぶ状態の比較。

隠しファイルの条件を切り分ける

初期サンプルには通常のファイルとドットで始まるファイルが含まれています。dotを有効にすると後者の結果を確認できます。大文字小文字の設定は独立しているため、隠しファイルを含めても大文字の拡張子まで自動的に一致するわけではありません。

同じファイル一覧で、隠しファイルの設定を有効にした後だけドット付きファイルが一致する図。

実際の設定に合わせて検証する

01

依存ライブラリを選ぶ

選べるのはminimatch 10.2.6とpicomatch 4.0.7です。ビルドツールの依存関係と呼び出し設定を確認し、対応するライブラリを選んでください。

  • 先頭の!や#は、選択したライブラリ自身が解釈します。
02

区切り文字と文字の大小を分ける

POSIXでは/を区切りに使い、バックスラッシュはエスケープとして残します。Windows区切り文字ではパターンと候補中のバックスラッシュを/へ変換します。

  • Windows区切り文字を選んでも、大文字小文字を無視する設定には変わりません。
03

最新の結果を保存する

自動テストは入力が止まってから350ミリ秒後に実行します。オフにするとボタンまたはCtrl/Cmd + Enterで実行できます。変更直後は古い結果のコピーとダウンロードが無効になります。

  • 最初の表示は50行です。JSONには全候補の結果が入ります。

条件を記録しながらパスを比較

実際の依存ライブラリを使用

globパターンテスターは選択したライブラリを直接呼び出します。レポートにはバージョン、パターン、オプション、元のパスと照合用のパスが入り、比較条件を後で確認できます。

文字集合と複数の選択肢

?で一文字、[abc]で文字集合、**で階層、{js,ts}で拡張子の選択肢を表せます。@(foo|bar).jsのような拡張globもライブラリに渡すため、この画面独自の変換規則に置き換えません。

ファイル名だけを対象にする

ファイル名のみの照合を有効にすると、/を含まない*.jsでsrc/app.jsも選択できます。パターンに/がある場合はパスの照合を続けます。拡張子フィルターの対象範囲を調べるときに使えます。

不一致と重複も残す

一致した行だけを取り出すのではなく、全候補に一致・不一致を表示します。同じパスを複数回入力した場合も別々の行として残り、空行を除いても元の行番号で参照できます。

対応範囲と入力の扱い

一つのパターンを検証
パターン内の改行は拒否します。カンマでルールを分割せず、波括弧の選択肢として使用できます。後の行を優先するルール一覧やGitの親ディレクトリ除外は扱いません。
方言の違いを維持
minimatchでは先頭の#はコメント、!は否定として扱われます。picomatchでは#は文字として扱われ、!(foo).jsは否定の拡張globになり得ます。数値範囲も両者で同一とは限りません。
Windowsは区切り文字の変換
このモードでは全バックスラッシュを/に変換するため、同じ文字でエスケープはできません。ドライブ名を削除したり、..を解決したりする処理は追加しません。ファイルシステムの再現ではありません。
空白はファイル名の一部
空行だけを飛ばし、前後の空白と重複は保持します。LF、CRLF、CRを行区切りとして受け付けます。制御文字や不正なUnicodeは拒否するため、名前自体に改行を含むファイルには使えません。
計算量を制限
パターンは256、パスは一行512、入力全体は131,072 UTF-16コード単位までです。候補は200行、minimatchの波括弧展開は1,000件まで。処理が2秒を超えると終了し、部分的な成功レポートは出しません。
存在確認や厳密な構文検証ではない
入力された文字列だけを照合し、ディレクトリ走査やURL取得は行いません。[のような閉じていない構文が文字として受理されることもあります。不一致という結果だけでは、構文エラーとは判断できません。

globパターンテスターのよくある質問

パスの中の**は何を表しますか?

独立したパス区間に置いた**は、複数階層だけでなくゼロ階層にも対応します。src/**/*.tsならsrc/a.tsとsrc/lib/a.tsの両方が候補になります。通常の*は一つの区間にとどまります。

文字クラスは正規表現と同じですか?

[abc]や[0-9]は候補を一文字に絞る用途で使えます。ただしglob全体を正規表現と同じ言語として扱うことはできません。この画面は正規表現を出力せず、選んだライブラリの照合結果を返します。

ドットはエスケープする必要がありますか?

通常のglobで拡張子に使うドットは文字そのものです。*.jsを正規表現の.*と同じ意味で読まないでください。名前の先頭のドットにはdot設定も関係するため、位置を分けて確認すると原因を絞れます。

{a,b,c}のような波括弧は使えますか?

複数の選択肢には使えます。たとえば*.{js,ts}は二つの拡張子を指定します。file{01..12}.jsの数値展開はminimatchで検証でき、picomatchでは同じ範囲になるとは限りません。

パスの一部分だけを検索できますか?

部分文字列検索のモードはありません。全パスを照合するか、/を含まないパターンでファイル名のみの照合を有効にします。任意の位置から正規表現で探す場合は正規表現テスターを使ってください。

確認したいパスの事例がありますか?

境界になる候補を追加

一致すべきパスと一致してはいけないパスを並べ、設定を一つずつ変えて確認しましょう。