2013-06-27 137 views
5

我試着寫我的第一個正則表達式。我有以下組合爲1 alphabat字母,數字和alphabat括號正則表達式

letters [upper or lowercase] 
numbers [0-9] 
letters in parentheses [(M)] 
no spaces or other characters 

幾個例子的值:

OK: "A3" 
OK: "N15" 
OK: "A126" 
OK: "B6469" 
OK: "A57(M)" 
OK: "A1(M)" 

NOT OK: "TF9 3TF" 
NOT OK: "B64 69" 

我的正常工作經驗:

^(([a-zA-Z][1-9]\([a-zA-Z]\)?)|([a-zA-Z][1-9][1-9]\([a-zA-Z]\)?)|([a-zA-Z][1-9]?)|([a-zA-Z][1-9][1-9]?)|([a-zA-Z][1-9][1-9][1-9]?)|([a-zA-Z][1-9][1-9][1-9][1-9]?))$ 

其作品對我很好。但我想爲它最好的解決方案,就像我的正則表達式似乎太長,因爲每個組合我做一個表達式,然後結合所有這些,但我想減少我的正則表達式,就像我的示例代碼中包含第一個字母表然後數字,可以是一個或多個,但直到5. 告訴我如何使一個表達式適用於(A1,A12,A123,A1234,A12345)?

回答

6

這看起來過於複雜。

^[a-zA-Z]\d{1,5}(?:\(M\))?$ 

應該這樣做。

+0

非常感謝您的快速響應和其良好的工作.... :) – ARsl

+0

嗨@尼斯我正在使用這個正則表達式「^ [a-zA-Z] [a-zA-Z0-9] *」for以下是否可以向我建議我錯在哪裏1)應該以字母[a-zA-z]開頭2)只能包含數字和字母。 –

+0

@ KK_07k11A0585您似乎沒有'$'來定位匹配的結尾。 –

相關問題