2013-06-27 8 views
5

Sto cercando di scrivere la mia prima espressione regolare .. Sto avendo valore delle seguenti combinazioniRegular Expression per il 1 ° lettera Alphabat, numeri e Alphabat tra parentesi

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

alcuni esempi:

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

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

mio Exp Pieno:

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

sue funziona bene per me. ma voglio la migliore soluzione per questo, come la mia espressione regolare sembra essere troppo lunga perché per ogni combinazione faccio un'espressione e poi combino tutti questi elementi, ma voglio ridurre la mia espressione regolare come nel mio codice di esempio che contiene il primo alfabeto e il numero che può essere uno o più ma fino al 5. dimmi come posso creare un'espressione che funzioni per (A1, A12, A123, A1234, A12345)?

risposta

6

Ciò sembra eccessivamente complesso.

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

Dovrebbe farlo.

+0

Grazie mille per la risposta rapida e il suo funzionamento buono .... :) – ARsl

+0

Ciao @Niet Sto usando questa espressione regolare "^ [a-zA-Z] [a-zA-Z0-9] *" per quanto segue potresti suggerirmi dove mi sono sbagliato 1) Dovrei iniziare con la lettera [a-zA-z] 2) Dovrebbe contenere solo cifre e lettere. –

+0

@ KK_07k11A0585 Sembra che tu non abbia il '$' per ancorare la fine della tua partita. –

Problemi correlati