PostgreSQL REGEXP_REPLACE
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.