Uso la seguente espressione regolare per convalidare un elenco di valori separati da virgole.Esiste un'espressione regolare per un elenco separato da virgole di valori discreti?
^Dog|Cat|Bird|Mouse(, (Dog|Cat|Bird|Mouse))*$
I valori sono anche elencati in un elenco di convalida della cella Excel basso, quindi l'utente può selezionare un singolo valore da discesa, oppure immettere più valori separati da virgole.
L'espressione regolare fa un buon lavoro di impedire all'utente di inserire qualsiasi cosa tranne i valori approvati, ma non impedisce all'utente di immettere duplicati. Ad esempio, l'utente può inserire "Cane" e "Cane, Gatto", ma l'utente può anche inserire "Cane, Cane".
C'è un modo per evitare duplicati utilizzando una singola espressione regolare simile? In altre parole, devo essere in grado di applicare un elenco discreto di valori separati da virgola approvati.
Grazie!
Sì, vicino, ma non cattura "Gatto, Cane, Cane". Grazie! – Kuyenda
Non so se questo potrebbe funzionare ma forse puoi fare il riferimento posteriore (?! (\ 1 | \ 2 | \ 5 | \ 8) e cambiare il * a 4. Penso che questo potrebbe esplodere se i gruppi di cattura non esistono però. Non l'ho provato, solo un pensiero – Tim
Perché "\ 1 \ 2 \ 5 \ 8"? Non sarebbe "\ 1 \ 2 \ 3 \ 4"? Grazie ! – Kuyenda