C#:基于正则表达式获取所有文件

C#:基于正则表达式获取所有文件,c#,regex,C#,Regex,我有一个文件夹,其中包含多个具有不同命名约定的Zip文件 1.zip Hello.zip SomeNameWithAnyCharacter-Xal_Yal_Zal_12345-20180518-152147535.zip 我想获得所有具有以下命名约定的zip文件: [SomeNameWithAnyCharacter]-[Xal_Yal_Zal_][yyyyMMdd][HHmmssfff] 如何在C#中为以下代码应用正则表达式 使用所需的正则表达式添加,其中: 模式:Xal_Yal_Zal_[0

我有一个文件夹,其中包含多个具有不同命名约定的
Zip
文件

  • 1.zip
  • Hello.zip
  • SomeNameWithAnyCharacter-Xal_Yal_Zal_12345-20180518-152147535.zip
  • 我想获得所有具有以下命名约定的zip文件:

    [SomeNameWithAnyCharacter]-[Xal_Yal_Zal_][yyyyMMdd][HHmmssfff]
    
    如何在C#中为以下代码应用正则表达式


    使用所需的正则表达式添加
    ,其中

    模式:
    Xal_Yal_Zal_[0-9]+-[0-9]{8}-[0-9]{9}$

    Xal_Yal_Zal_ - Xal_Yal_Zal_ 
    [0-9]+       - one or more digits 0..9
    -            - minus sign
    [0-9]{8}     - 8 digits 0..9, e.g. 20180518
    -            - minus sign
    [0-9]{9}     - 9 digits 0..9, e.g. 152147535
    $            - anchor - end of string
    

    使用所需的正则表达式添加
    ,其中

    模式:
    Xal_Yal_Zal_[0-9]+-[0-9]{8}-[0-9]{9}$

    Xal_Yal_Zal_ - Xal_Yal_Zal_ 
    [0-9]+       - one or more digits 0..9
    -            - minus sign
    [0-9]{8}     - 8 digits 0..9, e.g. 20180518
    -            - minus sign
    [0-9]{9}     - 9 digits 0..9, e.g. 152147535
    $            - anchor - end of string
    

    太好了。。你试过什么。。我在你的linq
    *.zip中没有看到任何名称匹配。请给我所有的文件,我可以把正则表达式放在这里吗,然后如何?在你的select中,匹配名称上的正则表达式……。你看过GetFiles的文档了吗?您已经在那里使用了通配符-可能只是使用它的其他通配符选项就可以了。它不做正则表达式,但是如果像
    *-[Xal_Yal_Zal.*.zip
    这样的东西可以做这项工作,那就是一个选项。你知道,正则表达式之外有一个完整的字符串操作世界。。。你不知道正则表达式,不要使用正则表达式。世界将继续前进,你的代码仍将运行。这很好。。你试过什么。。我在你的linq
    *.zip中没有看到任何名称匹配。请给我所有的文件,我可以把正则表达式放在这里吗,然后如何?在你的select中,匹配名称上的正则表达式……。你看过GetFiles的文档了吗?您已经在那里使用了通配符-可能只是使用它的其他通配符选项就可以了。它不做正则表达式,但是如果像
    *-[Xal_Yal_Zal.*.zip
    这样的东西可以做这项工作,那就是一个选项。你知道,正则表达式之外有一个完整的字符串操作世界。。。你不知道正则表达式,不要使用正则表达式。世界将继续前进,你的代码仍将运行。从技术上讲,你应该发布(在正则表达式之后)-检查日期的有效性(例如使用
    DateTime.TryParse
    ):-)但我们将忽略此细节:-)啊。。。也许最好将正则表达式放在一个变量中,这样每个文件只编译一次而不是解释一次。从技术上讲,您应该发布(在正则表达式之后)-检查日期的有效性(例如使用
    DateTime.TryParse
    ):-),但我们将忽略此细节:-)啊。。。也许最好将正则表达式放在一个变量中,这样就可以对每个文件编译一次而不是解释一次。
    Xal_Yal_Zal_ - Xal_Yal_Zal_ 
    [0-9]+       - one or more digits 0..9
    -            - minus sign
    [0-9]{8}     - 8 digits 0..9, e.g. 20180518
    -            - minus sign
    [0-9]{9}     - 9 digits 0..9, e.g. 152147535
    $            - anchor - end of string