1
resposta

Utilização de classe []

Estou curioso para entender uma coisa. Utilizei está expressão para poder buscar um CPF:

\d{3}.?\d{3}.?\d{3}\-?\d{2}

Funcionou muito bem como eu esperava. Porém, quando o professor acrescentou a questão da classe eu executei da seguinte forma:

\d{3}.?\d{3}.?\d{3}\[-.]?\d{2}

Imaginei que funcionaria, porém não tive sucesso. Observei que o professor coloca no seguinte formato:

\d{3}.?\d{3}.?\d{3}[-.]?\d{2}

Fiquei intrigado e gostaria de saber o pq minha solução está incorreta.

1 resposta

Oi, Gabriel, tudo bem?

com essa regex \d{3}.?\d{3}.?\d{3}[-.]?\d{2} temos um problema pois o formato de como um cpf é dividido usualmente pode ser assim:

123.456.789.10 12345678910 123.456.789-10

O problema é apresentado na terceira sequência de trio de numeros, aqui: \d{3}[-.]? mas especificamente aqui [, você não está pegando esse conjuto de numeros que em sequência podem vir com traço ou ponto, você está escapando ele e não captando esse caracter que pode ser adicionado. Esse \d{3}[-.]? trecho da regex ela se refere à 789- ou 789. ou 789, a barra impede de pegar esse caracter após a entrada do terceiro trio de números.

Espero ter te ajudado!