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を実行し、一致は緑、不一致は赤で印を付け、凡例が変換された各トークンを説明します。すべてはブラウザー内で動作するため、入力したパターンとパスはお使いのデバイスに留まります。
機能
- *、?、**(globstar)、文字クラス、{a,b} の波括弧をregex構文に変換
- globstarの切り替えで ** と * が / のパス区切りをまたぐかを制御
- 否定クラス [!abc] は [^abc] になり、[0-9] のような範囲は保持
- globではリテラルなregexのメタ文字をエスケープし、. + ( ) を正確に一致
- 全文字列一致のための ^…$ アンカリング(任意)と、大文字小文字を区別しない i フラグ
- リアルタイムテスターがサンプルパスのリストを確認し、各一致を緑、不一致を赤で表示
- globの各部分がregexで何になったかをトークンの凡例で説明
- regexを /pattern/flags リテラルとしてワンクリックでコピー
glob to regex 変換ツール の使い方
- **/*.ts のようなglobパターンをパターンボックスに入力するか貼り付けます。
- globstar・アンカリング・波括弧展開・大文字小文字の区別をオンまたはオフに切り替えます。
- 生成されたregexのソースとフラグを読み、トークンの凡例を確認します。
- テスターにサンプルパスを1行ずつ入力し、どれが一致するか確認します。
- 「regexをコピー」をクリックして、コード用に /pattern/flags リテラルを取得します。
例
入力
src/**/*.{ts,tsx}
出力
/^src/(?:.*/)?[^/]*\.(?:ts|tsx)$/
globstarにより src/**/ はネストしたフォルダーをまたぎ、*.{ts,tsx} は末端に留まります。
よくあるエラーとトラブルシューティング
- *.js が src/app.js のようなネストしたパスに予期せず一致する。 — globstarをオンのままにすると、単一の * は / 区切りで止まります。ネストしたファイルを対象にしたい場合は **/*.js を使ってください。
- file.txt のようなパターンが filextxt や fileXtxt に一致する。 — それは生のregexで起こります。この変換ツールはドットを \. にエスケープ済みなので、リテラルのピリオドにのみ一致します。
- パスが正しく見えるのにregexが一度も一致しない。 — アンカリングはパターンを ^…$ で囲むため、文字列全体が一致する必要があります。部分一致にはアンカリングをオフにしてください。
- {a,b} が選択肢にならず、出力にそのまま表示される。 — 波括弧展開を有効にしてください。オフのままだと波括弧はリテラル文字として扱われます。
よくある質問
- 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 ツール