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

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

我有一个正则表达式,我陷入了.gitignore类似于:

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

它不起作用,所以我对其进行了测试正则表达式实验室

然后我找到了吉蒂诺尔手册页让我了解到 gitignore 不使用正则表达式,而是使用匹配(3)

但是, fnmatch 它似乎没有相当于捕获组的功能。这是可行的还是我需要将其分成三行?

答案1

无法使用 gitignore 支持的模式来表达这个正则表达式。问题不在于缺少捕获组(事实上,您没有这样使用捕获组),问题在于缺少|运算符。您需要将其分成四行。

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

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

相关内容