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
[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