正则表达式文件扩展名筛选器

时间:2010-04-27 19:46:56

标签: .net regex

我正在尝试创建一个正则表达式,它将获取所有没有扩展列表的文件。特别是,我试图过滤掉以.csv

结尾的文件名

我已经浏览了一个小时,但却无法弄清楚这一点。我正在使用.NET Regex。

3 个答案:

答案 0 :(得分:4)

以下应该可以解决问题。我刚用.net测试了它。

^.*\.(?!csv).*$

请确保包含IgnoreCase RegexOptions以使其不区分大小写。

答案 1 :(得分:1)

如果您使用的是.Net 3.5或更高版本,则此非正则表达式解决方案应该有效:

var root = new DirectoryInfo(@"C:\");
var files = root.GetFiles();

var filteredFiles = files.Where(f => f.Extension != "csv");

答案 2 :(得分:0)

        For Each r As String In _invalidFileExpressions
            If bValid Then
                bValid = Not Regex.IsMatch(FileName, r, RegexOptions.IgnoreCase)
            End If
        Next

r将被定义为.net正则表达式,一些样本:

        ".*\.csv" 
        ".*d\.txt" 
        "\d\d_\d{8}[dmysDMYS].txt" 
        ".*(batch).*\.txt"
        ".*(elvis).*\.txt"
        ".*(anal).*\.txt"
        ".*(monthlystats)\.txt"
        ".*(rx)\.txt"
        ".*(BAD|bad)\.txt"
        ".*(mm)\.txt"
        ".*(flu)\.txt"