Ciao a tutti. Dovrei validare un codice esadecimale che può essere inserito sia con tre caratteri che con sei.

Come faccio a indicare queste due possibilità? Ho guardato sul manuale ma ho trovato solo numero esatto di occorrenze oppure un intervallo, non un'alternativa tra due numeri ben precisi.
Ho provato così:
Codice PHP:
$colore 'FF0099'//es.

echo preg_match("#^[a-f0-9]{3|6}$#i",$colore) ? 'valido' 'non valido';
echo 
preg_match("#^[a-f0-9]{3}|{6}$#i",$colore) ? 'valido' 'non valido'
la prima mi dice non valido, la seconda mi da un bel warning.

Grazie.