Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby 通配符**如何在fnmatch中工作?_Ruby_Wildcard_Matching - Fatal编程技术网

Ruby 通配符**如何在fnmatch中工作?

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

我注意到Ruby的
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