使用正则表达式通过过滤器搜索文件
本文关键字:过滤器 搜索 文件 正则表达式 | 更新日期: 2023-09-27 17:51:24
我需要找到一个以字符"prft"开头的文件,这个文件的名称是"prft0000.140", " prft210.140 ", "prft1258.140"…等。我需要验证这个文件是否存在于特定的目录中。所以我有这个正则表达式来找到它们,但我不知道如何编写过滤器来匹配。
List<string> prftFiles = (new DirectoryInfo(filePath))
.GetFiles(".", SearchOption.AllDirectories)
.Where(a => Regex.IsMatch(a.Name, "prft[^*]$"))
.Select(fi => fi.Name)
.ToList();
这个不工作"prft[^*]$",那么,它是怎么回事??
为什么不直接做List prftFiles = (new DirectoryInfo(filePath)).GetFiles("prft*", SearchOption.AllDirectories)
这是你可以使用的正则表达式
string pattern = @"^(prft'd{4}'.'d{3})$";
但是你可以像其他人说的那样通过通配符和*来查找文件如果你想要精确的数学模式PRFT 4位数字。3位数字你应该使用正则表达式因为prft*会找到所有以prft
这里实际上不需要使用Regex,因为Directory类在您选择的模式中有一个搜索机制。
Directory.GetFiles("C:'SomeDirectory", "prft*");
*
通配符匹配任何内容。