Pular para o conteúdo principal
Documentos
Sintaxe básicaFunções JSONAcionadoresGerenciamento de tabelas e esquemasFunções de cadeia de caracteresFunções matemáticasFunções de dataBancos de dadosÍndices

PostgreSQL REGEXP_REPLACE

```html

A função `REGEXP_REPLACE` do PostgreSQL é utilizada para pesquisar um padrão de expressão regular em uma string e substituir as ocorrências do padrão por uma string de substituição especificada. É uma ferramenta avançada para manipulação de strings e limpeza de dados de texto.

Uso

A função `REGEXP_REPLACE` é normalmente usada para modificar cadeias de caracteres por meio da substituição de padrões específicos, o que é especialmente útil em tarefas de transformação de dados. Ele permite a correspondência de padrões complexos usando expressões regulares e opera em texto e tipos de dados com variação de caracteres.

sql
REGEXP_REPLACE(source, pattern, replacement [, flags])
  • Fonte: A cadeia de caracteres a ser pesquisada.
  • padrão: O padrão de expressão regular a ser pesquisado. Observe que as barras invertidas nos padrões (por exemplo, para referências anteriores) podem precisar ser duplicadas devido às sequências de escape nas cadeias de caracteres SQL.
  • substituição: A cadeia de caracteres para substituir os padrões correspondentes. A cadeia de caracteres de substituição pode incluir referências anteriores (por exemplo, `\1` para o primeiro grupo capturado) para usar partes do padrão correspondente na substituição.
  • bandeiras: Sinalizadores opcionais para controlar o comportamento do processo de correspondência.

Exemplos

1. Substituição básica

sql
SELECT REGEXP_REPLACE('apple pie', 'apple', 'banana');

Essa consulta substitui a palavra "apple" (maçã) por "banana" (banana) na cadeia de caracteres, resultando em "banana pie" (torta de banana).

2. Substituição com distinção entre maiúsculas e minúsculas

sql
SELECT REGEXP_REPLACE('Hello World', 'world', 'there', 'i');

Usando o sinalizador 'i' para não diferenciar maiúsculas de minúsculas, isso substitui "World" por "there", resultando em "Hello there".

3. Substituir por referências anteriores

sql
SELECT REGEXP_REPLACE('123-456-7890', '(\\d{3})-(\\d{3})-(\\d{4})', '(\\1) \\2-\\3');

Este exemplo formata um número de telefone capturando grupos e reorganizando-os, produzindo "(123) 456-7890".

Dicas e práticas recomendadas

  • Compreender as expressões regulares. Familiarize-se com a sintaxe da expressão regular para usar efetivamente o `REGEXP_REPLACE`.
  • Use as bandeiras com sabedoria. Utilize sinalizadores como "i" para correspondência sem distinção entre maiúsculas e minúsculas ou "g" para substituição global para atender a necessidades específicas.
  • Expressões de teste. Antes de aplicar substituições complexas, teste suas expressões regulares para garantir que elas funcionem como pretendido.
  • Cuidado com o desempenho. As operações de expressão regular podem ser computacionalmente caras; use-as criteriosamente em grandes conjuntos de dados.
  • Escape os caracteres corretamente. Certifique-se de que os caracteres especiais em expressões regulares ou cadeias de caracteres SQL sejam escapados corretamente para evitar erros.
```