如何在C#中根据RegEx查找文件

bao*_*bao 7 c# regex search file

我需要获取某些驱动器上具有与特定模式匹配的路径的文件列表,例如FA\d\d\d\d.xml其中\ d是数字(0,1,2..9).所以文件可以有像FA5423.xml这样的名称.

这样做最有效的名字是什么?

Phi*_*Gan 18

你在使用C#3吗?

Regex reg = new Regex(@"^FA[0-9]{4}\.xml$");
var files = Directory.GetFiles(yourPath, "*.xml").Where(path => reg.IsMatch(path));
Run Code Online (Sandbox Code Playgroud)


Jam*_*mes 6

您可以执行以下操作:

System.IO.Directory.GetFiles(@"C:\", "FA????.xml", SearchOption.AllDirectories);
Run Code Online (Sandbox Code Playgroud)

然后从结果中对其进行迭代,并针对您的正则表达式进行验证,即?名称中的字符均为数字


Mar*_*tos 2

使用 Directory API 查找FA????.xml,并通过正则表达式过滤器运行结果列表:

var fa = from f in Directory.GetFiles("FA????.xml")
         where Regex.Match(f, "FA\d\d\d\d\.xml")
         select f;
Run Code Online (Sandbox Code Playgroud)

  • Regex.Match 不会返回 Match 对象而不是布尔值吗? (5认同)