$regexReplace (Substituição com Regex)

Última atualização: 2026-10-09

$regexReplace (Substituição com Regex)

$regexReplace encontra texto com um regex e o substitui por uma string fornecida — uma ferramenta avançada de limpeza de texto em pipelines. A substituição pode referenciar grupos de captura via $1, $2 para fluxos de extrair-e-reconstruir. options suporta flags como i, m, x. Diferente de $replaceAll (apenas literal), $regexReplace trabalha com padrões. Introduzido no MongoDB 4.4. Entrada null resulta em null.

CategoriaString
Versão do MongoDB1.0+
Idioma do Exemplomongosh (Shell)

📝 Sintaxe

{ $regexReplace: { input: <expressão de string>, regex: <padrão>, replacement: <substituição>, options: <opções> } }

⚙️ Parâmetros

inputObrigatório; a string a processar.
regexObrigatório; uma string de padrão regex compatível com Perl.
replacementObrigatório; a substituição, com $1/$2 referenciando grupos de captura.
optionsSinalizadores opcionais como i, m, x.

Retorno:A string substituída; null se a entrada for null.

▶ Exemplo

Execute os comandos abaixo no seu mongosh local (requer um mongod em execução):

// $regexReplace: mascarar os 4 dígitos centrais dos números de telefone
db.users.aggregate([
  { $project: { masked: { $regexReplace: { input: '$phone', regex: '(\\d{3})\\d{4}(\\d{4})', replacement: '$1****$2' } } } }
])

Saída:

{ "_id": 1, "masked": "138****8000" }
{ "_id": 2, "masked": "139****1234" }

📌 Notas

Mais casos práticos em breve.

📚 Tutoriais Relacionados

❓ Perguntas Frequentes

QComo referenciar grupos de captura na substituição?
AUse $1, $2 na ordem dos grupos de captura.
QE se nada corresponder?
AA entrada é retornada inalterada.
QQual escolher, $regexReplace ou $replaceAll?
APadrões exigem $regexReplace; trocas literais simples são mais rápidas com $replaceAll.
Web-Tutorial.com

Equipe Técnica Web-Tutorial

Uma plataforma de tutoriais mantida por diversos desenvolvedores. Cada tutorial é escrito e revisado por profissionais da área correspondente. Trabalhamos para manter nosso conteúdo preciso e confiável — se encontrar algum problema, avise-nos.

100%