给出类Unix路径的资源结构:
e.g。
/foo/bar/baz/phleem/abc.txt
和一组蚂蚁式通配符模式:
* matches zero or more characters excluding /
** matches zero or more full sub-paths (may not be preceded or followed
by anything other than /)
模式中的所有其他字符都是文字,为简单起见,只有字符
路径中允许A-Z,a-z,0-9,/和。
。
鉴于上述结构:
我是否正确假设所有匹配模式,最具体的匹配始终按字母顺序排列?
示例:
路径:
/foo/bar/baz/phleem/abc.txt
匹配模式(按字母顺序排列):
** < least specific
**/*.txt
**/phleem/*.txt
/foo/**/abc.txt < most specific
更新:好的,这是我对“最具体”的定义
如果,a比b更具体
答案 0 :(得分:2)
严格地说,由于/
和*
不是字母,因此您没有按字母顺序排序,因此它将是字典排序。您似乎已经假设*
&lt; [a-zA-Z0-9./]
这很重要。对这些模式进行排序将满足非通配符前缀具有最大长度的第一个条件。但是,排序只会确保在第一个不相等的情况下*
使用**
;所有剩余的通配符都与排序无关。这可能是个问题。考虑以下两种模式:
/**/*.txt
/*/**
他们是有序的,但我认为第一个实际上更具体。