2013-06-27 10 views
5

내가 처음으로 정규 표현식을 쓰기 위해 노력하고있어 .. 나는 다음과 같은 조합정규 표현식

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

안녕하세요 @Niet이 정규식 "^ [a-zA-Z] [a-zA-Z0-9] *"를 사용하고 있습니다. 다음 중 내가 틀린 부분을 제게 제안 해주십시오. 1) 문자 [a-zA-z]로 시작해야합니다. 2) 숫자와 문자 만 입력해야합니다. –

+0

@ KK_07k11A0585 '$'는 경기 종료를 표시하지 않습니다. –