Uso de retrovisores em expressões regulares no PostgreSQL

image_pdfimage_print

Expressão regular é um recurso que também é conhecido por Regex, Regular Expression, Regexp, RE ou ER.

Um recurso muito poderoso das expressões regulares, em geral pouco utilizado, são os retrovisores. Eles são recursos que armazenam os grupos de dados encontrados de acordo com o padrão informado. No PostgreSQL, estes grupos são definidos por parentese. E o uso retrovisor correspondente a este grupo que casou com o padrão é \{ordem, iniciando em 1}.

Com isto, é possível resgatar o valor que casou com o grupo cujo padrão ficou definido dentro do parênteses. Uma forma fácil e rápida de visualizar o que são os retrovisores e seu poder está no exemplo abaixo.

regexp_replace('31/03/2011', '(\d+)/(\d+)/(\d{4})', '\3-\2-\1');

Explicando o código acima ficará claro o que são os grupos e o que são/fazem os retrovisores.
Neste exemplo, podemos indicar que:
\3 => Retrovisor do terceiro grupo da regexp. É a regexp (\d{4}) e valor 2011.
\2 => Retrovisor do segundo grupo da regexp. É a regexp (\d+) e valor 03.
\1 => Retrovisor do primeiro grupo da regexp. É a regexp (\d+) e valor 31.

Gostou? Tire um minutinho e dê sua contribuição para Drall Dev Community no Patreon!