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

Negando uma regex

Bom dia, A minha dúvida é como posso recuperar tudo que não for matching da regex, por exemplo na string referente ao endereço: "Rua Teste de almeida, 209 - Mooca - SP - 01090-876." utilizei a regex \d{5}-\d{3} e funciona, mas quero recuperar todo o resto. Como posso negar essa regex?

6 respostas

Fala Francisco, tranquilo?

Tem como você postar o trecho do código em questão?

Bom dia Daniel,

Obrigado pela ajuda, posso sim

select Endereco_completo FROM MORADORES  where Endereco_completo NOT LIKE '%\d{5}-\d{3}%';

Tenho esse valor na coluna endereço: "R: XV DE NOVEMBRO 96 CS 5 - CENTRO 11010-150 - São Paulo, SP"

O objetivo é o retorno de apenas os valores que não são o CEP.

Então Francisco, só confirmando, seu objetivo caso é pegar o valor do select e extrair as informações que não sejam o cep?

No caso:

R: XV DE NOVEMBRO 96 CS 5 - CENTRO 11010-150 - São Paulo, SP

Seria:

R: XV DE NOVEMBRO 96 CS 5 - CENTRO - São Paulo, SP

Sim, isso mesmo!

Apesar que também não consegui fazer ao contrario... retornar apenas o CEP na coluna sem o resto do valor

solução!

Então, na verdade creio que seja uma coisa mais complexa..

Sua query nesse caso:

select Endereco_completo FROM MORADORES  where Endereco_completo NOT LIKE '%\d{5}-\d{3}%';

O que ela está fazendo efetivamente nesse caso é retornando todos os endereços que não se encaixem nesse padrão, ou seja, você não está fazendo uma "operação" em cima da sua consulta, e sim filtrando.