**グロブ文字とは何ですか?


87

私はreactgulpfileにこのパスを持っています:

var path = {
  HTML: 'src/index.html',
  ALL: ['src/js/*.js', 'src/js/**/*.js', 'src/index.html'],
  JS: ['src/js/*.js', 'src/js/**/*.js'],
  MINIFIED_OUT: 'build.min.js',
  DEST_SRC: 'dist/src',
  DEST_BUILD: 'dist/build',
  DEST: 'dist'
};

ダブルグロブキャラクターとは何ですか?

私はシングルグロブが何であるかを知っています...しかしダブルは何ですか? 単一のグロブ

回答:


101

これは単一のアスタリスクとほぼ同じですが、複数のディレクトリレベルで構成されている場合があります。

つまり、while/x/*/yは次のようなエントリに一致します。

/x/a/y
/x/b/y

など(ワイルドカードセクションにディレクトリレベルが1つしかない場合)、二重アスタリスク/x/**/yは次のようなものに一致します。

/x/any/number/of/levels/y

「任意の数のレベル」の概念で、ゼロも含まれます(つまり、選択肢の1つとして/x/**/y一致/x/yします)。


余談ですが、メインフレームに何かをクレジットするのは嫌いですがこれはMVSの初期の頃から、複数のレベルでデータセットを選択できるようにするために使用されてきたと思います:-)


2
これは意味がありません。*が0以上の文字を表す場合、そのパターンは/ x // yと一致する可能性がありますが、これは無意味です。あなたが本当に言っているのは、「任意の数の文字の後に任意の数の文字が続く」ということです。それだけじゃない…ああ、わからない…何文字でも???
AleksandrH

7
@AleksandrH、いいえ、これは通常の意味での正規表現ではありません。文字の一致はなくディレクトリ名のみです。これは特に階層ファイルシステム用です。最初のポイントでは、空のディレクトリ名が許可されていれば、/x//y完全に有効です。しかし、これを可能にするファイルシステムを見たことがありません。2つ目のポイントでは、*「任意のディレクトリ名、1つのレベルのみ」に一致する(したがって、次の/仕切りを超えない)ことを**意味し、「任意の数のレベルを各レベルの任意のディレクトリ名に一致させる」(複数のレベルにまたがることができる)を意味します。/必要に応じて仕切り)。
paxdiablo 2018

9
/x/**/y//x/y/も含まれていることは注目に値します。これはすっきりしています。
YassineImounachen19年

24

これは通常、任意の数のサブディレクトリを示すために使用されます。そう

src/js/**/*.js

一致します

src/js/files/*.js
src/js/more-files/*.js

etc
etc

8
単一のアスタリスクも例に一致します。2番目の例に追加のサブサブディレクトリを含めるつもりだったと思います。
サイモンイースト

1
@SimonEastこのように?SRC / JS /ファイル/コントローラ/ user.jsのはsrc / JS /ファイル/モデル/ fooの/ var.js
AutumnSky

21

**スラッシュを含むすべての文字に一致しますスラッシュを除く/
*すべての文字に一致します(ファイル名またはディレクトリ名のみに一致します)


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.