Una regex semplice potrebbe essere:

codice:
/@(.+)@/
E poi usi semplicemente str_replace(" ", "-"). Il problema è che dai troppi pochi dettagli, per esempio, una stringa del genere è accettabile in input?

@asdasd@asd@asdasdas@

Se sì, quale dovrebbe essere l'output?

Comunque credo di averti dato un punto di partenza