[RESOLVIDO] Dúvida - Expressão regular para validação de string

Boa tarde.

Preciso de uma rotina que receba uma string e verifique:

  • Se ela possui caracteres maiúsculos;
  • Se ela possui acentuação;
  • Se ela possui caracteres especiais, exceto _ (underline) e . (ponto).

Testei alguns métodos convencionais e expressões regulares, mas consegui resolver apenas parte do problema.

Alguém tem uma sugestão?

Desde já, obrigado.

a acentuação é tanto nas letras maiuscula e minusculas?

defina caracteres especias…

Na verdade, gostaria que fosse uma verificação eliminatória. Por exemplo:

Sofá, poltrona” - Apesar de conter uma letra maiúscula, um acento e uma vírgula, o método poderia retornar false logo após a verificação do ‘S’ pois neste momento já deixaria de atender as condições, dispensando a avaliação do ‘á’ e da vírgula.

Quanto aos caracteres especiais, gostaria que os únicos aceitos fossem o ‘_’ (underline) e o ‘.’ ponto. Os demais já reprovariam a string.

Mais uma vez, obrigado.

Calma vamos por partes…

para te ajudar preciso saber tudo que é válido e o que não é

Valido:

_ (underline)
. (ponto)
a-z(letras minusculas)

Invalido

á-ú (acentos minusculos)
Á-Ú (acentos maiusculos)
A-Z (letras maiusculas)

Mas e os:

0-9 numerais validos ou invalidos?
!@#$%¨&*()_±={}[]?:/;><, todos estes você chama de caracteres especias?

Mustang89

Desculpe por não ter esclarecido tudo antes.

É exatamente isto:

Os numerais de 0 a 9 (0-9) também serão válidos.

!@#$%¨&*()_±={}[]?:/;><, - Sim, todos estes símbolos eu considero como caracteres especiais.

Novamente, obrigado.

no seu caso é mais facil fazer a negação da expressão regular

tente este código

if(!Pattern.compile("[^a-z0-9\._]").matcher(suaStr).find())

Funcionou perfeitamente…

Valeu demais Mustang89.