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

Pergunta sobre RE (Regular Expression) criada para validar URL.

No exercicio, criamos a seguinte regex: “(http(s)?://)?(www.)?bytebank.com(.br)?/cambio”. Porém, acho que tem um errinho nessa regex, pois o "." de ".com" não representa que o URL tem que ter especificamente um "." e sim qualquer caractere antes do "com". Lendo a documentação, vi que o "." representa qualquer caractere, mas nesse caso, creio que não seria isso que nós queriamos ! Por exemplo: a URL "bytebankXcom/cambio" acaba sendo validada como correta no nosso código.

Para corrigir isso, não teriamos que colocar "\." ao invés de "." ?

6 respostas

Pelo que entendi, ele ta tratando o 'bytebank.com' deve existir na url de forma completa.

O problema que estou falando é que o "." no regex é que ele representa qualquer caractere, e não o ".", pois ele é um caractere especial para o regex. Creio que quando ele colocou no regex "bytebank.com", ele estava querendo especificar apenas o "." e não qualquer caractere. Para que validasse especificamente o "bytebank.com" acho que o regex correto seria "bytebank\.com".

Então... Entendi o que quis dizer, embora imagino que se eu colocar uma URL "algumacoisa.com" ele vai dar um erro, quando for comparar com a Regex. Mas apenas por curiosidade, voce testou essa questão?

Sim, é para continuar dando "erro" (não sendo validado). Para que seja válido, precisa ter no minimo "bytebank.com/cambio", se não sempre vai dar URL inválida, mas acho que isso era parte do exercicio mesmo.

Show.. Acho que então chegou a uma conclusão sobre isto.

solução!

Bom, eu cheguei na conclusão que a regex passada tem um errinho, pois o "." que o professor colocou, creio que ele queria que fosse esperado exatamente um ponto, porém, como o "." é um caractere especial no regex, ele deveria ter sido usado da seguinte forma: "\.", para que o ponto "parasse de ser especial" representando apenas um ponto comum.

Só fiz esse post para verificar se o meu pensamento estava correto ou não.