代码之家  ›  专栏  ›  技术社区  ›  Nick Larsen

regex文件扩展名筛选器

  •  1
  • Nick Larsen  · 技术社区  · 14 年前

    我正在尝试创建一个regex,它将获取所有没有扩展名列表的文件。尤其是,我正试图筛选出以.csv结尾的文件名

    我浏览了一个小时,一直没能弄清楚。我正在使用.NET regex。

    3 回复  |  直到 14 年前
        1
  •  4
  •   Jason Webb    14 年前

    下面的技巧就可以了。我刚用.NET测试过。

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

    一定要包括ignorecase RegexOptions 使它不区分大小写。

        2
  •  1
  •   Austin Salonen    14 年前

    如果您使用的是.NET 3.5或更高版本,此非regex解决方案应该可以工作:

    var root = new DirectoryInfo(@"C:\");
    var files = root.GetFiles();
    
    var filteredFiles = files.Where(f => f.Extension != "csv");
    
        3
  •  0
  •   BlackICE    14 年前
            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"