2014-03-26 127 views
0

我有下面的C#代碼來使用正則表達式比較文件名。使用正則表達式匹配文件名

private string PPMFileName = "p_p_m"; 

private string FilePattern = PPMFileName + @"(.*)\.csv"; //File gets appended with date 

private Regex regex = new Regex(FilePattern) 

if(regex.IsMatch(file.Name)) 
//do my stuff 

它返回甚至是文件名p_p_m_er_bo_20140324.csv,在那裏,我希望它只是返回文件名p_p_m_20140324.csv真(日期會不斷變化)真。

回答

1

變化的正則表達式部分:

@"_\d{8}\.csv" 

因此,它只會匹配一個下劃線和文件名後8位數字。

這也可能是爲了逃避情況下,它包含正則表達式元字符的文件名是個好主意:

private string FilePattern = Regex.Escape(PPMFileName) + @"_\d{8}\.csv"; 
+0

真棒。沒有意識到Regex.Escape。 – Cannon