我想创建一个glob表达式来识别没有句号(句点)的文件名,并在Ruby代码中使用该表达式。我意识到普通的全局表达式不能做到这一点。但是,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的English-language和Japanese-language文档只谈到了File::FNM_EXTGLOB,允许您联合使用两种可能性,比如File.fnmatch('c{at,ub}s', 'cats', File::FNM_EXTGLOB)。
使用glob表达式的另一种选择是使用正则表达式,或者可能是using the operating system to do the globbing itself,但如果可能的话,我不希望使用这些方法。
发布于 2017-08-24 13:02:06
您所链接的文档描述了在Ruby语言中可以使用FNM_EXTGLOB完成的所有工作;也就是说,大括号是您在使用该标志时获得的唯一额外功能。不确定是否有外部库,但我怀疑是否有。
https://stackoverflow.com/questions/45852419
复制相似问题