如何修改这个有效的正则表达式以在 C# 中使用?

我正在使用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);

}


慕村9548890
浏览 60回答 1
1回答

繁星点点滴滴

如果你使用 Linq 你可以这样做:string[]&nbsp;array&nbsp;=&nbsp;Directory.GetFileSystemEntries(pathName) &nbsp;&nbsp;&nbsp;&nbsp;.Where(f&nbsp;=>&nbsp;searchPattern.IsMatch(Path.GetFileName(f))) &nbsp;&nbsp;&nbsp;&nbsp;.ToArray();
打开App,查看更多内容
随时随地看视频慕课网APP