如何使用星号正确匹配文件?

问题描述 投票:1回答:1

我有以下文件:

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。哪些文件应匹配pattern1pattern2pattern3

c# file pattern-matching matching
1个回答
0
投票

第一个模式应匹配通配符匹配中的所有内容。您基本上是在说。

包含\并以.dll结尾

第二个应该匹配最后两个。

包含\comic\并以.dll结尾

最后一个应该不匹配。

[以book\开头包含\并以.dll结尾

这当然是用于此处Matching strings with wildcard中所述的模式匹配,而不是正则表达式。

glob世界中,这不完全是:

**匹配任何字符,包括正斜杠/

*匹配除正斜杠以外的任何字符(仅匹配文件或目录名称)

所以请这样考虑。第一个模式仅与第一个和第二个匹配。通过有效地使用double **,我也关心子目录。

带有更多示例的出色解释:here

© www.soinside.com 2019 - 2024. All rights reserved.