0

我想创建一个 glob 表达式来识别其中没有任何句号(句点)的文件名,并在 Ruby 代码中使用该表达式。我意识到普通的 glob 表达式不能做到这一点。但是,bash extglob 有一种可以处理这种情况的语法。是否可以在 Ruby 中使用 bash extglob 样式模式,使用核心 Ruby 库或第三方 gem?

我尝试使用File::FNM_EXTGLOB,但这没有用。下面是一个简化的场景,用来测试是否File::FNM_EXTGLOB有和 bash extglob 完全相同的语法,但似乎不是这样:

File.fnmatch("myfile_+[0-9].txt", "myfile_123.txt", File::FNM_EXTGLOB)

此外,英语日语文档File.fnmatch只谈论File::FNM_EXTGLOB允许您使用两种可能性的联合,例如File.fnmatch('c{at,ub}s', 'cats', File::FNM_EXTGLOB).

使用 glob 表达式的替代方法是使用正则表达式,或者可能使用操作系统自己进行 globbing,但如果可能的话,我宁愿不走这些路径。

4

1 回答 1

1

您链接到的文档描述了可以FNM_EXTGLOB在 Ruby 中完成的所有操作;也就是说,大括号是您在使用该标志时获得的唯一额外功能。不确定是否有任何外部库,但我怀疑是否有。

于 2017-08-24T05:02:05.803 回答