hoje comecei fazer uns testes usando ER e estou com um problema 
do{
System.out.print("Salário:");
salario = dg.next();
Pattern p = Pattern.compile("(\s.*|.*\D.*)");
m = p.matcher(salario);
if (!m.matches() && !salario.equals(""))
vlsalario = Float.parseFloat(salario);
if (vlsalario < 0 || m.matches() || salario.equals(""))
System.out.println("Salário inválido.");
}while(vlsalario < 0 || m.matches() || salario.equals(""));
aqui será validado quando a primeira casa da string não for um espaço em branco e for digitado apenas números.
tem como permitir que digite apenas vírgula fora os números?
tentei aqui de várias maneiras e nada deu certo =/