galera eu quero validar a senha que o usuario informa da seguinte maneira, ela tem que ter letras , numeros e caracteres especias fiz a seguinte expresao regular
"[a-zA-Z]+[0-9]+[\\p{Punct}]+"
mas ela so ira validar se os caracteres estiverem nessa sequencia
entaum como eu faria para validar os caracteres em qualquer sequencia ?
tentei o seguitne
("[a-zA-Z0-9\\p{Punct}]+
mas neste casso valores sem caracteres especiais foram validados, alguem sabe aonde eu errei ?
no minimo uma letra e no maximo duas mas não funcionou, palavras com mais letras sao validadas saberia porque ?
Rodrigo_Sasaki
O operador que eu usei não funciona da maneira que você está acostumado.
Ele valida se existe o padrão pedido, porém não consome nenhum caractere na leitura, ele não avança o índice. por isso eu coloco os quantificadores atrás e na frente do padrão, para verificar se ele existe em qualquer lugar do texto.
Você não vai conseguir fazer o que quer somente utilizando isso. validar usando o length como você disse é uma solução muito mais simples
CristianPalmaSola10
Valeu pela ajuda Rodrigo…
E
entanglement
De modo geral, se seu problema exige, para ser resolvido, desse operador “(?=” ou “(?<” ou coisa parecida (back-reference), é sinal que ele pode ser resolvido, de forma mais clara, combinando-se várias expressões regulares, em vez de tentar resolver com uma única expressão regular.
Rodrigo_Sasaki
Eu concordo, eu sempre acho que esse tipo de coisa fica bem confusa. Aquele código que outras pessoas na equipe pensam:
“Eu não sei o que isso faz, mas não vou ser eu que vou mexer aí.”
As vezes uma solução que parece mais “demorada” pode ser melhor pela simplicidade.
Mas como não resisto a uma brincadeirinha com expressões regulares, resolvi montar o padrão