我想创建一个 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,但如果可能的话,我宁愿不走这些路径。