正则表达式(Big | Small)(State | City)-[0-9] * \。csv的.gitignore模式等效项是什么


23

我有一个正则表达式卡在我.gitignore类似于:

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

它没有用,所以我对RegexLab.NET进行了测试。

然后,我找到了gitignore手册页,这使我了解到gitignore不使用正则表达式,而是使用fnmatch(3)

但是,fnmatch它似乎没有等效的捕获组。这可行吗?还是需要将其分为三行?

Answers:


26

无法使用gitignore支持的模式来表达此正则表达式。问题不是缺少捕获组(实际上,您不是在使用捕获组),而是缺少|操作员。您需要将其分为四行。

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

注意,模式匹配例如BigState-4foo.csv,因为*匹配任何字符序列。除非您只愿意匹配固定数量的数字,否则您无法使用全局模式做得更好。


2
我完全按照你说的做。另外,感谢您指出*不重复前面的表达式,而是一张白纸。它足以满足我的需求,但我一直希望更好。
贾斯汀·迪林Dearing '02
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.