Substituição com regex: reorganize o texto com grupos de captura
Troque ano, mês e dia sem redigitá-los—e veja por que uma data correspondente ainda pode ser inválida.
Para transformar 2026-10-15 em 15/10/2026, capture o ano, o mês e o dia separadamente e depois coloque essas capturas em outra ordem. Você não precisa digitar uma nova substituição para cada data.
Este exemplo muda a forma do texto. Ele não verifica se cada data existe. Essa distinção importa quando você usa o resultado em uma planilha ou publica.
Comece com uma amostra pequena, incluindo uma data inválida
Abra o Regex playground e cole isto em Testar texto:
Launch: 2026-10-15
Review: 2026-11-02
Invalid: 2026-99-99
Short: 2026-1-5
Em Expressão regular, insira este padrão sem delimitadores de barra:
\b(?<year>\d{4})-(?<month>\d{2})-(?<day>\d{2})\b
Os três grupos nomeados capturam quatro dígitos, dois dígitos e dois dígitos. As bordas de palavra impedem que ele corresponda dentro de uma sequência mais longa de caracteres de palavra, mas não o tornam um validador de calendário.
Em Opções, mantenha Encontrar todas as correspondências ativado. Essa é a flag g. Você deve ver três correspondências; o mês e o dia de um dígito na última linha não se encaixam no padrão.
Reordene as capturas na substituição
Escolha Substituir e insira o seguinte em Substituir por. No celular, primeiro abra Resultados para chegar à visualização de substituição.
$<day>/$<month>/$<year>
A pré-visualização da substituição deve mostrar:
Launch: 15/10/2026
Review: 02/11/2026
Invalid: 99/99/2026
Short: 2026-1-5
A data inválida também mudou. Um padrão que apenas conta dígitos não pode saber o número de dias em um mês. Use um parser de datas quando a validade do calendário importar; use esta substituição quando você já souber que as datas de entrada são válidas e só precisar de um formato de exibição diferente.
Desativar Encontrar todas as correspondências altera apenas a primeira data. A contagem de correspondências da ferramenta cai de três para um. Se uma substituição parecer parar após a primeira ocorrência, verifique essa flag antes de reescrever o padrão.
Grupos numerados também funcionam
Para um padrão mais curto, remova os nomes:
\b(\d{4})-(\d{2})-(\d{2})\b
Depois use esta substituição:
$3/$2/$1
Ela produz a mesma saída para esta amostra. Os números dos grupos seguem os parênteses de captura de abertura, da esquerda para a direita. Grupos nomeados são mais fáceis de manter se você espera editar o padrão depois.
O playground usa a sintaxe de substituição do JavaScript. No campo de substituição, $1 insere a primeira captura, $<year> insere a captura nomeada, $& insere a correspondência inteira e $$ insere um cifrão literal. A referência de substituição do MDN lista essas formas. Outros editores e motores de regex podem usar notação de substituição diferente.
Mantenha a fonte e inspecione as exceções
Baixe a amostra de entrada, a saída com todas as correspondências e a saída apenas com a primeira correspondência para compará-las. O arquivo de configurações preserva o padrão e a substituição; as barras duplicadas nesse JSON são escape de string, não barras extras para colar no campo de padrão.
Em 15 de outubro de 2026, executamos esses exemplos pela mesma função de avaliação do playground. Ambos os estilos de captura produziram saída idêntica; desligar a flag global mudou uma correspondência, e a data inválida ainda correspondeu. O registro de resultados inclui essas verificações e os hashes dos arquivos.
Para um rascunho real, mantenha uma cópia intocada e inclua algumas linhas que não devem mudar no seu teste. Uma pré-visualização plausível não é evidência de que toda substituição está correta.