Ciao a tutti,
sto scrivendo un'espressione regolare che deve rispettare queste caratteristiche:

SI: cifre (0-9), lettere (a-z) e trattino (-).
NO: iniziare o terminare con il trattino (-).

io ho scritto:
codice:
preg_match ('/^[^\-][a-z0-9\-]+[^\-]$/', $sito)
però ho un problema che non riesco a risolvere.

Se scrivo una stringa con meno di 3 caratteri va in errore.
Se al primo posto o all'ultimo scrivo caratteri diversi da quelli consentiti mi accetta la stringa

Io vorrei anche scrivendo solo "a" o solo "1" che non vada in errore.
Allo stesso tempo se scrivo ad esempio "£1£" deve andare in errore.

Evidentemente l'espressione si aspetta 3 caratteri e nel primo e l'ultimo posto si aspetta comunque un carattere l'importante che non sia un trattino.

Spero in un vostro aiuto, grazie.

Andrea