Ruby 通配符**如何在fnmatch中工作?
我注意到Ruby的Ruby 通配符**如何在fnmatch中工作?,ruby,wildcard,matching,Ruby,Wildcard,Matching,我注意到Ruby的fnmatch函数有一个惊人的行为: File.fnmatch('**.rb', 'main.rb') #=> true File.fnmatch('**.rb', './main.rb') #=> false 如本节所述,**将: 递归匹配目录或扩展匹配文件 那么为什么它不展开并匹配/main.rb?这个行为实际上是,但很容易忽略。在它所说的例子中: 默认情况下,通配符与前导期间不匹配 要启
fnmatch
函数有一个惊人的行为:
File.fnmatch('**.rb', 'main.rb') #=> true
File.fnmatch('**.rb', './main.rb') #=> false
如本节所述,**
将:
递归匹配目录或扩展匹配文件
那么为什么它不展开并匹配/main.rb
?这个行为实际上是,但很容易忽略。在它所说的例子中:
默认情况下,通配符与前导期间不匹配
要启用此行为,需要指定File::FNM\u DOTMATCH标志:
File.fnmatch('**.rb', './main.rb', File::FNM_DOTMATCH)
=> true