2
respostas

[Sugestão] Alteração na expressão regular

Na primeira aula de expressão regular, a instrutora criou uma que captura todos os caracteres dentro dos [] incluindo eles, que é dessa forma "[[^[]]?]". Seguindo por essa lógica, faria sentido que a expressão da aula seguinte, para capturar todos os links dentro dos parênteses, seja igual, mudando somente os caracteres de início e fim (já que no primeiro começa e acaba por colchetes), ou seja, na forma "(https?[^[]]?)". Com a adição do https? pois precisa começar com http ou https.

2 respostas

Olá Leonardo, tudo certo?

Obrigado por compartilhar sua sugestão. Realmente, a expressão regular que você propôs faz sentido e deve funcionar para capturar todos os links dentro dos parênteses.

Lembre-se de testar a expressão regular em diferentes cenários para garantir que ela está funcionando corretamente. Caso tenha alguma dificuldade, não hesite em compartilhar suas dúvidas aqui no fórum. Abraços e bons estudos!

Oi Leonardo, tudo bem?

Você não colocou a expressão completa, mas fiz um teste com a sua sugestão apenas para capturar os links dentro dos parênteses (sem incluir os parênteses em si): (https?[^[]]?)

Quando testado na string de conexão que fornecemos com o curso, reconhece apenas http:, https: ou httpst (a partir de https://httpstat.us/404). Isso acontece porque /, além de ser parte do padrão que queremos capturar, também é um meta-char usado em regex e precisa ser "escapado" para ser reconhecido como caractere normal.

Após isso há alguns outros detalhes na versão que usamos no curso, que fazem com que a regex pegue os parênteses de fora, desconsidere alguns caracteres especiais como ? na primeira parte da URL e também saiba a "hora de parar" de capturar caracteres.

Por exemplo, o grupo (https?:\/\/[^].[^\s]*), mais resumido, também funcionaria para os exemplos que usamos no curso, mas escolhemos deixar mais completa :)

Você pode usar o site regex101 para ir testando as partes da regex com a string de exemplo do curso.

Espero ter ajudado!

Bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!