Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Curiosidade sobre a resposta da atividade 05 na aula 03

Olá.

Na resposta da atividade 05 da aula 03 existem alguns caracteres que eu gostaria de saber se possuem alguma funcionalidade.

\w{2,50}@\w{2,15}\.[a-z]{2,3}\.?([a-z]{2,3})?

No final do campo domínio do endereço de e-mail ("gmail", "yahoo", "hotmail", etc) e no final do campo seguinte tem o caractere "\"

Gostaria de saber se esses caracteres exercem alguma função ou não, aparentemente o código funciona sem eles estarem presentes.

Desde já, obrigado pela atenção e bons estudos.

2 respostas
solução!

Oii Mateus, como você está? Espero que esteja bem ^-^

Alguns caracteres na regex possuem significados diferentes, por exemplo:

  • O ponto serve para dizermos que queremos representar qualquer caracter.
  • O parênteses serve para extrairmos um determinado grupo de caracteres em uma string.

Portanto, quando queremos utilizar esses caracteres com o seu valor literal, ou seja, que signifique realmente um ponto, utilizamos o símbolo da barra invertida para escapar esse caractere para que ele assuma seu valor original, por isso no código você pôde observar o trecho: \.

Vamos a um exemplo prático:

  • Imagine a seguinte regex(com a barra invertida):

    \w{2,50}@\w{2,15}\.[a-z]{2,3}\.?([a-z]{2,3})?
  • Da forma como está acima, se utilizarmos a string: "mateus@alura.com", este e-mail será capturado. Porém, se utilizamos a string: "mateus@alura;com", este e-mail não será capturado, pois, o que se espera é um ponto após o provedor do e-mail.

  • Agora, imagine a seguinte regex(sem a barra invertida):

    \w{2,50}@\w{2,15}.[a-z]{2,3}.?([a-z]{2,3})?
  • Neste caso, quando utilizamos a string "mateus@alura.com", ela será capturada. Porém, se utilizarmos a string "mateus@alura;com" ela também será capturada e nesse caso, isso acontece porque o ponto está significando qualquer caracter .

Para testar o que foi dito, você pode entrar no site do Regex101 e preencher os dados da expressão regular juntamente a string de teste, como mostro na imagem abaixo:

image

Qualquer dúvida estou por aqui, tá bom?

Grande abraço!

Olá Nádia. Eu estou bem, e você?

Agora entendi.

Muito obrigado pela explicação e também pela dica do site.

Tudo de bom para você!