1
resposta

Encontrando uma string que comece com determinada expressão

A questão é:

Temos aqui um erro que aconteceu em um sistema:

Caused by: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure

Sabendo que o erro sempre começa com a expressão Caused by:, faça uma regex que capture-o.

Opinião do instrutor

Um regex simples que pode ser feita é:

^Caused by:.*

A âncora ^ garantirá que, na string, nada deve vir antes de Caused by:, ou seja, a string deve começar com essa expressão. A seguinte string não seria válida, por exemplo: Error Caused by:


Eu não entendi o último parágrafo da opinião do instrutor. Se ele queria invalidar o Error Caused by: a expressão correta não seria:

^Caused by:.+

Para que se garantisse algum texto após o "Caused by:"?

1 resposta

Olá Jorge,

pelo que pude entender o instrutor deu um exemplo de como o caracter especial ^ antes da string "obriga" que a mesma comece com "Caused by", então qualquer string fora desse padrão de começo serial "false".

A expressão ^Caused by:.* também está correta já que o * quer dizer 0 ou mais vezes, enquanto que o + quer dizer 1 ou mais vezes.

Entendo que vir o erro só com o "Caused by:.*" será bem difícil, mas como o instrutor mesmo falou: "Um regex simples que pode ser feita é: "

Att,