Używam następującego wyrażenia regularnego do sprawdzania wartości rozdzielonych przecinkami.Czy istnieje wyrażenie regularne dla rozdzielonej przecinkami listy dyskretnych wartości?
^Dog|Cat|Bird|Mouse(, (Dog|Cat|Bird|Mouse))*$
Wartości są podane w liście rozwijanej walidacji komórek Excel dół, tak więc użytkownik może wybrać jedną wartość z listy rozwijanej lub typu w wielu wartości oddzielony przecinkami.
Wyrażenie regularne dobrze zapobiega wprowadzeniu przez użytkownika niczego oprócz zatwierdzonych wartości, ale nie zapobiega wprowadzeniu przez użytkownika duplikatów. Na przykład użytkownik może wpisać "Pies" i "Pies, kot", ale użytkownik może również wpisać "Pies, pies".
Czy istnieje sposób na uniknięcie duplikatów przy użyciu podobnego pojedynczego wyrażenia regularnego? Innymi słowy, muszę mieć możliwość wymuszenia dyskretnej listy zatwierdzonych wartości rozdzielanych przecinkami.
Dzięki!
Tak, blisko, ale nie łapie "Kot, pies, pies". Dzięki! – Kuyenda
Nie wiem, czy to zadziała, ale może uda ci się wykonać referencję zwrotną (?! (\ 1 | \ 2 | \ 5 | \ 8) i zmienić * na 4. Myślę, że może to spowodować wybuch, jeśli grupy przechwytywania nie istnieją, ale nie próbowałem, po prostu myśl – Tim
Dlaczego "\ 1 \ 2 \ 5 \ 8"? Czy nie byłoby "\ 1 \ 2 \ 3 \ 4"? Dzięki ! – Kuyenda