Java Regex para número de telefone – deve include apenas 8 dígitos com no máximo 2 traços

Eu preciso da sua ajuda com isso. Eu tenho que formar um regex que aceita apenas 8 dígitos (sem letras) com nenhum ou menos de 3 traços.

Deve aceitar estes exemplos:

12345678 1234 5678 1234-5678 123-45-678 12-345-678 

Não deve aceitar estes exemplos:

 1234 (less than 8 digits) 123456789 (more than 8 digits) -12345678- !@@#$% 12ABCBDEF (with letters) 12-34-56-78 (more than 3 dashes) 

Qualquer ajuda é apreciada.