1
resposta

Duvida de Regex em java

Boa noite, Gostaria de saber como fazer uma validação de usuário da seguinte forma:

  1. Deve começar com uma letra
  2. Só pode conter letras e números
  3. Não deve ter com _
  4. Deve ter o tamanho de 4 até 25 caracteres

Resultado:

* (^[a-zA-Z])(\w+)([^_]){4,25}$

Mas não está validando toda a String !

Exemplo:

    jorged95

Resultado:

    grupo1  = 0-1  =    j
     grupo2  = 1-4  =   org
     grupo3  = 7-8  =    5
Não pegou os caracteres 5 e 6!

Como solucionar??

1 resposta

Olá Jorge,

A expressão regular que você utilizou parece estar correta. No entanto, o problema está no método que você está utilizando para validar a String. Sugiro que você utilize o método matches() da classe String para validar sua expressão regular.

Segue um exemplo de como utilizar o método matches():

String usuario = "jorged95";
String regex = "^[a-zA-Z]\\w{3,24}$";
if (usuario.matches(regex)) {
    System.out.println("Usuário válido!");
} else {
    System.out.println("Usuário inválido!");
}

Nesse exemplo, a expressão regular utilizada é ^[a-zA-Z]\\w{3,24}$, que valida uma String que começa com uma letra, seguida de 3 a 24 caracteres alfanuméricos.

Espero ter ajudado e bons estudos!