2015-11-04 41 views
3

我有一個文件名列表裏面會有名這樣的:正則表達式模式,以有效的文件名

ADB_FULL_REQ_XXXXXXXXXXXX_151004_01.dat 

其中:

ADB_FULL_REQ_是恆定的

XXXXXXXXXXXX是計算機的MAC地址

151004代表yyMMdd格式的日期

01是2個位數,最高爲

我將必須執行其中包含這些文件的diretory搜索,並檢查是否有任何的無效/有效。

我試圖用正則表達式這種模式,但Match.Success總是返回false:

Match match = Regex.Match(filename, @"^ADB_FULL_REQ_XXXXXXXXXXXX_(d\{6})_(d\{2}).dat") 

請告訴我,我做錯了what'm?謝謝!

+1

你要照顧的Mac地址太 – Asunez

+0

'd \ {6}'=>'\ d {6}' –

回答

2

這個錯誤並不大:

^ADB_FULL_REQ_[a-fA-F0-9]{12}_(\d{6})_(\d{2}).dat 

您使用d\,而不是\d。改變它,這將工作正常(我已經添加檢查MAC地址)。

+0

感謝這麼多,是什麼一個失誤的錯誤:( – EagerToLearn

+1

@NguyenHoang樂於幫助:) – wudzik

+0

你能向我解釋'[a-fA-F0-9]'的部分嗎? – EagerToLearn

2

你錯過了檢查MAC地址:

^ADB_FULL_REQ_[\dA-F]{12}_(\d{6})_(\d{2}).dat$ 
+0

非常感謝,它現在工作! – EagerToLearn