2012-02-27 137 views
1

我要實現一些正則表達式來測試有效的文件名如: ABCD-A-V1-02 /二千○十二分之二十七正則表達式表達對選定的文件名格式

當第一個字母不應該超過4個字母,第二組從A到Z和V#像V1,V2等

這是我到現在爲止,但在reg測試儀不工作,我想我缺少的東西。

[a-zA-Z]{4}-[A-Z]{1}-V\d{0,9}[1-9])|(0[1-9])|(1[0-2]))\/(([0-9])|([0-2][0-9])|(3[0-1]))\/(([0-9][0-9])|([1-2][0,9][0-9][0-9] 

回答

0

,你也可以把^...$跡象只是驗證您所期望的圖形恰好

@"^[a-zA-Z]{1,4}-[A-Z]-V\d-\d{2}/\d{2}/\d{4}$" 

它只會驗證只有你所期望的圖形,所有的休息是無效

有效:AAAA-AA-v232- 12/12/2-2010
invlid:AAAa-aa-v232-12/12/2-20103343AAAA

2

這是我看到基於your description的問題:

  • 爲第一組的字母字符的量詞要求正好四個字符,而不是4字
  • 模式不包含第二組字母('A'
  • 該模式不包含日期的正斜槓。
  • 你有一些事情大括號裏想的不是有效的

試試這個:

@"[a-zA-Z]{1,4}-[A-Z]-V\d-\d{2}/\d{2}/\d{4}" 

,能分解爲:

  • 至少一個不超過四個字母字符,不區分大小寫
  • 連字符
  • 一個大寫字母
  • 連字符
  • 大寫的'V'
  • 單個位數
  • 連字符
  • 兩位數
  • 正斜槓
  • 兩位數
  • 正斜槓
  • 四位數字

顯然這並不能確保最後的數字代表有效的日期。

+0

謝謝,這是一個簡單的解決方案! – SpcCode 2012-02-27 04:24:18