使用正则表达式c#从文件夹中选择文件

时间:2015-07-24 10:59:38

标签: c# .net regex regex-negation

我有一个案例,我想根据模式选择一组文件。所以我需要一个遵循所有这些场景的正则表达式。 应包含“价格”字样

Price_{0}_Extract_{1}.xml  

我想处理以下情况

Price_ABC_Extract_20150723081513.xml 
Price_DEF_Extract_20150823081513.xml 
ABC_Price_DEF_Extract_20150823081513.xml
FGH_Price_DEF_Extract_20150823081513_1.xml

使用一个正则表达式我想选择上面的文件

{1}应始终采用"yyyyMMddHHmmss" 格式   它应该总是包含一个单词“价格”

任何人都可以帮忙解决这个问题。当然我正在使用一个不处理所有这些情况的正则表达式(即Price_[yyyyMMddHHmmss].xml

我需要一个在c#中工作的解决方案

2 个答案:

答案 0 :(得分:1)

您可以使用以下正则表达式来检查文件名匹配:

^\w*?Price_\w*?Extract_\d{14}(?:_\d+?)??\.xml$
Demo here

然而,它并不验证日期实际上是有效的,只是它占用了正确的位数。

答案 1 :(得分:0)

为JB的回答添加数字限制:

\ W *?Price_ \ W *?\ d {4} [0-1] \ d [0-3] \ d [0-2] \ d [0-6] \ d [0-6] \ d(?:?_ \ d +)。?? XML