Boa noite pessoal
estou tentando desenvolver um Regex com a seguinte estrutura para as condições
[list]não pode ser nula nem vazia[/list]
[list]tem que ter somente números em cada membro que pode ser separado por \ / - . ,[/list]
[list]existe a possibilidade de ter membros onde fique assim 3*30[/list]
eu montei a seguinte Regex:
public void setValue(String value) {
Pattern p = Pattern.compile("^([\\d+](\\*\\d+)*([\\-\\\\./\\,]{0,1}))+$");
if (!p.matcher(value).find()) {
throw new IllegalArgumentException("Condição de pagamento inválida");
}
condicaoPgto = value;
}
o problema que eu testei com algumas condições e deveria ter ficado assim:
[list]30/60-90/120.150,10[/list]Essa é válida
[list]30/60-90\120.150//[/list]Essa é inválida por causa da dupla barra
[list]0[/list]Essa é válida
[list]310[/list]Essa é válida
[list]3101[/list]Essa deveria ser inválida pois tem 2 grupos de * número (essa que eu não estou conseguindo fazer funcionar)
[list]3[/list]Inválido pois falta um membro
[list]5**5[/list]Inválido pois tem dois *
Bom desde já agradeço