Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Remova tags HTML simples de String no Oracle via RegExp, explicação necessária


Porque regex é ganancioso por padrão. Ou seja as expressões .* ou .+ tente pegar o máximo de caracteres possível. Portanto <.+> abrangerá desde o primeiro < até o último > . Torne-o preguiçoso usando o operador preguiçoso ? :
regexp_replace(teststring, '<.+?>')

ou
regexp_replace(teststring, '<.*?>')

Agora, a busca por > irá parar no primeiro > encontrado.

Observe que . inclui > também, portanto, a variante gananciosa (sem ? ) engole todo o > mas o último.