Ruby中的Extglob语法样式匹配

问题描述:

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

我试过使用File::FNM_EXTGLOB,但没有奏效。下面是一个简单的场景来测试File::FNM_EXTGLOB是否具有完全相同的语法庆典extglob,这似乎不是这样的情况:

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

而且,File.fnmatchEnglish-languageJapanese-language文档只谈File::FNM_EXTGLOB让您使用两种可能性的联合,如File.fnmatch('c{at,ub}s', 'cats', File::FNM_EXTGLOB)

使用glob表达式的替代方法是去正则表达式,或者可能是using the operating system to do the globbing itself,但我宁愿不要在可能的情况下沿着这些路径走下去。

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