2
respostas

Interpretação da separação de grupos em uma expressão regular

Grupos:

Alvo: Caused by: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure
Regex: Caused[\s\w:.-]+:[\w\s]+
Resultado:
Caused by: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure

Pergunta: Não entendi como a expressão interpreta a separação da causa do erro e sua descrição pelo caracter (:) antes da descrição (Communications link failure)

2 respostas

Daniel, não entendi bem sua pergunta. poderia me mandar o trecho do código que gerou isso, por favor? \o

Oi Daniel, tudo bem? A Regex: Caused[\s\w:.-]+:[\w\s]+ consegue capturar a expressão de Exceptions completa, para separar em grupos, precisamos colocar o que queremos entre parenteses, alterando a Regex para: (Caused[\s\w:.-]+):([\w\s]+). Com os parenteses a Regex entende que o primeiro grupo que ela vai capturar é a causa do erro, até chegar nos : da expressão, o segundo grupo é a descrição, que vem depois dos : da expressão. São os parenteses que separam os grupos que queremos capturar.