glob to regex 変換ツール

globパターンをJavaScriptの正規表現にブラウザー内で変換し、実際のパスに対してテストできます。パターンはお使いのデバイスに留まります。

あなたのglobパターンとテストするサンプルパスはブラウザー内でローカルに変換され、アップロードされることはありません。

結果をデバッグしたいですか?正規表現テスターを開いてください。

glob to regex 変換ツール について

このglob to regex変換ツールは、シェル形式のワイルドカードパターンを、そのままコードに貼り付けられる同等のJavaScript正規表現に変換します。*.js、**/*.ts、src/**、file-{a,b}.txt のようなglobを入力すると、regexのソースとフラグを生成し、ドットや括弧のようなリテラル文字をエスケープして正確に一致させます。** がパス区切りをまたぐglobstar、{a,b,c} の波括弧展開、^ と $ による全文字列アンカリング、大文字小文字を区別しないフラグを切り替えられます。リアルタイムのテスターがサンプルパスのリストに対してregexを実行し、一致は緑、不一致は赤で印を付け、凡例が変換された各トークンを説明します。すべてはブラウザー内で動作するため、入力したパターンとパスはお使いのデバイスに留まります。

機能

glob to regex 変換ツール の使い方

  1. **/*.ts のようなglobパターンをパターンボックスに入力するか貼り付けます。
  2. globstar・アンカリング・波括弧展開・大文字小文字の区別をオンまたはオフに切り替えます。
  3. 生成されたregexのソースとフラグを読み、トークンの凡例を確認します。
  4. テスターにサンプルパスを1行ずつ入力し、どれが一致するか確認します。
  5. 「regexをコピー」をクリックして、コード用に /pattern/flags リテラルを取得します。

入力

src/**/*.{ts,tsx}

出力

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

globstarにより src/**/ はネストしたフォルダーをまたぎ、*.{ts,tsx} は末端に留まります。

よくあるエラーとトラブルシューティング

よくある質問

globパターンの ** は何を意味しますか?
** はglobstarです。globstarオプションをオンにするとパス区切りをまたいで一致するため、src/**/*.ts は任意のネストしたフォルダー内のファイルに届きます。一方、単一の * は次の / で止まります。
globの文字クラスはどうregexに変換されますか?
[abc] はそのままregexの文字クラスになり、[0-9] のような範囲はそのまま保持され、[!abc] と書かれた否定globクラスは [^abc] に変換されて、列挙されていない任意の文字に一致します。
変換ツールはなぜドットなどの文字をエスケープするのですか?
. + ( ) | のような文字はglobではリテラルですが、regexでは特別です。ツールはこれらを \. や \+ などにエスケープするため、結果のregexはそれらの文字を演算子ではなく正確に一致させます。
{a,b,c} のような波括弧展開に対応していますか?
はい。波括弧展開を有効にすると、file-{a,b}.txt は file-a.txt または file-b.txt に一致する選択肢になります。{*.js,*.ts} のように波括弧内にglobをネストすることもできます。
パス全体ではなく部分文字列に一致させられますか?
全文字列アンカリングをオフにしてください。アンカー付きパターンは ^…$ で囲まれるため文字列全体が一致する必要があります。アンカリングなしでは、より長い文字列の中のどこにでも一致します。
私のglobパターンはサーバーに送信されますか?
いいえ。glob to regexの変換もリアルタイムテスターも完全にブラウザー内で実行されるため、入力したパターンとサンプルパスはローカルで処理され、お使いのデバイスに留まります。

関連ツール

すべての ArrayKit ツール