2013-06-27 10 views
5

Staram się pisać mojego pierwszego wyrażenia regularnego .. Mam wartość następujących kombinacjiRegular Expression za 1 literą alphabat, numery i alphabat w nawiasach

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

kilka przykładów:

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

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

moich stałych Exp:

^(([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]?))$ 

jego działa dobrze dla mnie. ale chcę najlepszego rozwiązania, tak jak moje regularne wyrażenie wydaje się zbyt długie, ponieważ dla każdej kombinacji robię wyrażenie, a następnie łączę je wszystkie, ale chcę zmniejszyć moje regularne wyrażenie, tak jak w moim przykładowym kodzie zawiera pierwszy alfabet, a następnie numer, który może być jednym lub więcej, ale do 5. powiedz mi, jak mogę zrobić jedno wyrażenie, które będzie działać (A1, A12, A123, A1234, A12345)?

Odpowiedz

6

To wydaje się zbyt skomplikowane.

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

Należy to zrobić.

+0

Wielkie dzięki za szybką reakcję i jej dobre działanie ... :) – ARsl

+0

Witam @Niet Używam tego wyrażenia regularnego "^ [a-zA-Z] [a-zA-Z0-9] *" for co możesz mi powiedzieć, gdzie się myliłem? 1) Powinien zacząć od litery [a-zA-z] 2) Powinien zawierać tylko cyfry i litery. –

+0

@ KK_07k11A0585 Nie wydajesz się, aby '$' zakotwiczyło koniec twojego meczu. –

Powiązane problemy