我有以下文件:
C:\files\file1.dll
C:\files\file2.dll
C:\files\sample\sample1.dll
c:\files\sample\sample2.dll
c:\files\book\book1.dll
c:\files\book\book2.dll
c:\files\book\comic\comic1.dll
c:\files\book\comic\comic2.dll
模式1为*\*.dll
,模式2为*\comic\*.dll
,模式3为book\*\*.dll
。哪些文件应匹配pattern1
,pattern2
和pattern3
第一个模式应匹配通配符匹配中的所有内容。您基本上是在说。
包含\
并以.dll
结尾
第二个应该匹配最后两个。
包含\comic\
并以.dll
结尾
最后一个应该不匹配。
[以book\
开头包含\
并以.dll
结尾
这当然是用于此处Matching strings with wildcard中所述的模式匹配,而不是正则表达式。
在glob
世界中,这不完全是:
**匹配任何字符,包括正斜杠/
*匹配除正斜杠以外的任何字符(仅匹配文件或目录名称)
所以请这样考虑。第一个模式仅与第一个和第二个匹配。通过有效地使用double **,我也关心子目录。
带有更多示例的出色解释:here