Bom dia amigos, preciso resolver um problema mas esta dificil…
tenho que montar uma expressa regular para aceitar letras maisculas, minuscula e 0/9 porem obriga-los pelo menos um desses caracteres exemplo
se eu digitar fernando1 nao passa porem se difitar Fernando1 ou fernandO1 tudo bem é aceitavel, porem nao tenho ideia de como fazer ja
tentei [A-z][a-z][0-9] depois de A-Za-z0-9 mas nao rola
[\w\d]+
[/quote]
Neste caso, não pode. É que o “\w” inclui o caractere underscore ("_").
Em tempo: “\w” engloba “\d”, tornando a expressão acima equivalente a \w+
[quote=diego2005]Pelo que entendi, ele quer garantir pelo menos um caractere de cada grupo que ele falou, então acho que seria + - assim:
[a-z]+[A-Z]+[0-9]+
T+[/quote]
Também não funciona… A regex acima só aceita Strings em que pelo menos o primeiro caractere seja de “a” até “z”, termine com pelo menos um caratere entre “0” e “9”, e no meio tenha pelo menos um caractere de “A” até “Z”.
Infelizmente, creio que a solução buscada pelo OP não possa se dar através de regex. O mais próximo que consegui chegar foi:
E mesmo assim, ela não funciona legal, pois só aceita Strings que tenham pelo menos 1 letra maiúscula, uma minúscula e um número nesta ordem.
Talvez se você fizer uma combinação de regex como acima, alternando a ordem dos trechos significativos ("[A-Z]+", “[a-z]+” e “[0-9]+”) e intercalando-as com um “|”, pode até dar certo, mas que vai ficar super feio, não tenha dúvidas… Talvez seja melhor procurar uma outra alternativa para solucionar este problema…
[quote=diego2005]Ou então ele faz uma expressão pra cada restrição, e se as três expressões obtiveram sucesso, quer dizer que texto está no formato que ele quer.
Mas convenhamos também, acho que não ficaria legal, rsrsrsrs…
T+[/quote]
Ah, mas fica muito melhor que o monstrinho que eu coloquei lá em cima… :lol:
[quote=diego2005]É o que o Mantu falou anteriormente, essa expressão junta não vai funcionar, você tem que separá-la em 3.
T+[/quote]
Mas não é só pegar a expressão [A-Z]+[a-z]+[0-9] e separar em 3…
Se simplesmente fazer uma regex [A-Z]+, uma [a-z]+ e outra [0-9]+, não vai funcionar como estão esperando, uma vez que estas três expressões são exclusivas entre si.
Se a intenção do foliveira81 é só aceitar Strings atendam simultaneamente às restrições:
[list]ter apenas letras ou números[/list]
[list]ter pelo menos 1 letra maiúscula[/list]
[list]ter pelo menos 1 letra minúscula[/list]
[list]ter pelo menos 1 dígito[/list]