我正在使用https://regexr.com/和https://regex101.com/创建一个正则表达式,该正则表达式将用于过滤 ac# 控制台应用程序中目录中的文件列表。我试图匹配的格式是TLDxxyy:-TLD是一个常量-xx代表 2 位数字 (00-99)-yy代表字母数字值 (00、a9、0z、zz)- 不区分大小写使用上面的两个网站,我想出了tld(\d[0-9]{1})([a-zA-Z0-9]{2}).txt一个在我的测试样本上效果很好的网站。tld001a8.txt bad
tls0za8.txt bad
tls0gy8.txt bad
tld01a9.txt good
tld030z.txt good
tld07zz.txt good
tld1200.txt good以下代码会导致以下错误System.IO.DirectoryNotFoundException:“找不到路径的一部分”\w1\whist6\tld(“。”注意('.我的路径中的。public static void Test(){ var filesToProcess = new List<string>(); var pathsToSearch = new[] { @"\\w1\whist6", @"\\w2\whist2" }; var regex = new Regex(@"tld(\d[0-9]{1})([a-zA-Z0-9]{2}).txt"); var hist6Files = Directory.GetFileSystemEntries(pathsToSearch[0], regex.ToString()); filesToProcess.AddRange(hist6Files);}
1 回答
繁星点点滴滴
TA贡献1803条经验 获得超3个赞
如果你使用 Linq 你可以这样做:
string[] array = Directory.GetFileSystemEntries(pathName) .Where(f => searchPattern.IsMatch(Path.GetFileName(f))) .ToArray();
- 1 回答
- 0 关注
- 100 浏览
添加回答
举报
0/150
提交
取消