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.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,但我宁愿不要在可能的情况下沿着这些路径走下去。
答
链接到的文档描述了Ruby中可用FNM_EXTGLOB
完成的所有操作;也就是说,大括号是使用该标志时唯一的额外功能。不知道是否有任何外部库,但我怀疑是否有。