我正在使用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 關注
- 132 瀏覽
添加回答
舉報
0/150
提交
取消