c# – 寻找简单但功能强大的Windows通配符(`*,?`)匹配实现

我正在寻找简单而强大的方法来实现Windows风格的*和?字符串中匹配的通配符.BeginsWith(),EndsWith()过于简单,无法覆盖所有情况,而将通配符表达式转换为正则表达式看起来很复杂,我不确定性能.想要一个快乐的媒体....

我正在寻找简单而强大的方法来实现Windows风格的*和?字符串中匹配的通配符.

BeginsWith(),EndsWith()过于简单,无法覆盖所有情况,而将通配符表达式转换为正则表达式看起来很复杂,我不确定性能.

想要一个快乐的媒体.

编辑:我正在尝试解析.gitignore文件并匹配相同的文件,就像Git一样.这意味着:

>文件应该超出存储库的索引(所以我正在检查文件的路径与存储在索引中的路径)
> .gitignore中的模式数量可能很大;
>要检查的文件数也可能很大.

解决方法:

Windows通配符的等价物?和正则表达式中的*是公正的.和.*.

[编辑]鉴于你的新编辑(说明你正在寻找实际文件),我会完全跳过翻译,让.Net使用Directory.GetFiles()进行搜索.

(请注意,由于某种原因,将?传递到Directory.GetFiles()匹配“零个或一个字符”,而在Windows中它总是匹配一个字符)

本文标题为:c# – 寻找简单但功能强大的Windows通配符(`*,?`)匹配实现

基础教程推荐