web-dev-qa-db-ja.com

正規表現(Big | Small)(State | City)-[0-9] * \。csvに相当する.gitignoreパターンは何ですか

.gitignoreに次のような正規表現が残っています。

(Big|Small)(State|City)-[0-9]*\.csv

動作しなかったので RegexLab.NET に対してテストしました。

次に gitignore のマニュアルページを見つけたので、gitignoreは正規表現を使用せず、むしろ fnmatch(3) であることがわかりました。

ただし、fnmatchにはキャプチャグループに相当するものがないようです。これは実現可能ですか、これを3行に分割する必要がありますか?

25
Justin Dearing

この正規表現をgitignoreがサポートするパターンで表現する方法はありません。問題は、キャプチャグループの欠如ではありません(実際には、キャプチャグループを使用していません)。問題は、|演算子の欠如です。これを4行に分割する必要があります。

BigState-[0-9]*.csv
SmallState-[0-9]*.csv
BigCity-[0-9]*.csv
SmallCity-[0-9]*.csv

パターンが一致することに注意してください。 BigState-4foo.csv*は任意の文字シーケンスに一致するため。固定された桁数だけに一致することをいとわないのでない限り、グロブパターンを使用してこれ以上のことはできません。