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


23

私は私の.gitignore似たようなもので立ち往生している正規表現を持っています:

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

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

それからgitignoreのマニュアルページを見つけ、gitignoreは正規表現ではなくfnmatch(3)を使用していることを知りました。

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

回答:


26

gitignoreがサポートするパターンでこの正規表現を表現する方法はありません。問題はキャプチャグループの不足ではなく(実際、キャプチャグループ自体を使用していない)、問題は|オペレータの不足です。これを4行に分割する必要があります。

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

パターンは、たとえばBigState-4foo.csv*任意の文字シーケンスに一致するため一致することに注意してください。固定数の数字だけを一致させない限り、globパターンではこれ以上の効果は得られません。


2
私はあなたが言ったことを正確にやった。また、*を指摘してくれてありがとう。前の表現は繰り返されませんが、whileカードです。私のニーズには十分ですが、より良いものを望んでいました。
ジャスティンディアリング
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.