Ferramentas de texto e do dia a dia · Kit de ferramentas de texto
Grupos de captura Regex em localizar e substituir: reordenar datas com $1, $2, $3
· Como funciona
expressão regular localizar e substituir datas
Mostra como os parênteses capturam partes de uma correspondência e como $1, $2 e $3 os reutilizam na substituição, usando a clássica reescrita de data ISO-para-dia-mês-ano e algumas outras reordenações.
Quatrocentas datas na ordem errada — por que editar manualmente 2024-01-02 em 02/01/2024 é um trabalho para grupos de captura
Uma exportação de planilha pode deixar quatrocentas datas na ordem ano-mês-dia no estilo ISO quando uma planilha do Reino Unido espera o dia/month/year. Editar `2024-01-02` em `02/01/2024` manualmente é lento, mas o risco maior é a inconsistência: uma linha ignorada ou dígito transposto pode sobreviver até que um relatório seja distribuído.
Localizar e substituir pode tratar cada data como o mesmo arranjo de peças, em vez de quatrocentas sequências não relacionadas. Uma expressão regular identifica o ano, mês e dia, enquanto a substituição grava as partes capturadas em outra ordem. Os dígitos originais são reutilizados, portanto a operação altera a estrutura em vez de redigitar os valores.
O que os parênteses capturam — como cada grupo obtém um número da esquerda para a direita e o que \d{4} e \d{2} correspondem
Parênteses criam grupos de captura. Em `(\d{4})-(\d{2})-(\d{2})`, o primeiro grupo captura quatro dígitos, o segundo captura dois e o terceiro captura dois. `\d` significa um dígito neste padrão JavaScript, enquanto `{4}` e `{2}` especificam o número exato de repetições necessárias dentro de cada grupo.
Os grupos recebem números de cada parêntese de abertura conforme o mecanismo lê da esquerda para a direita. Para `2024-01-02`, o grupo 1 é `2024`, o grupo 2 é `01` e o grupo 3 é `02`; os hífens correspondem aos separadores, mas ficam fora dos parênteses, portanto, não são retidos como valores capturados.
Usando $1, $2 e $3 na substituição — reconstruindo a correspondência em uma nova ordem com novos separadores
A substituição `$3/$2/$1` pede a JavaScript para inserir a terceira captura, uma barra, a segunda captura, outra barra e a primeira captura. Aplicadas ao exemplo, essas referências produzem `02/01/2024`. As referências em dólares são instruções de substituição e não textos que também devem aparecer na data correspondente.
ToolAcre passa a string de substituição para a operação de substituição de string padrão JavaScript. Sua fonte suporta explicitamente referências numeradas como `$1`, `$2` e `$3`, e o padrão de pesquisa é compilado globalmente. Esse sinalizador global é o motivo pelo qual cada data correspondente é reescrita em uma operação, em vez de apenas na primeira correspondência.
Exemplo resolvido - (\d{4})-(\d{2})-(\d{2}) substituído por $3/$2/$1, e depois verificando a contagem de substituição em relação à contagem de linhas
Cole a coluna exportada, ative Regex, insira `(\d{4})-(\d{2})-(\d{2})` em Localizar e insira `$3/$2/$1` em Substituir. Selecionar Substituir tudo primeiro conta as correspondências e depois as reescreve, de modo que o resultado informa quantas strings em formato de data foram alteradas em todo o texto colado.
Compare esse número com a contagem de linhas esperada antes de copiar o resultado de volta para a planilha. Uma contagem menor indica espaços em branco ou datas em outro formato; uma contagem mais alta significa que texto semelhante em outro lugar também corresponde. A ferramenta não possui visualização de substituição, portanto, use a ação Desfazer se a contagem ou a saída revelar um padrão muito amplo.
Mais reordenações - 'Sobrenome, Nome próprio' para 'Sobrenome próprio' e troca das colunas de uma lista de duas colunas
O mesmo princípio pode mudar `Surname, Forename` para `Forename Surname` quando cada linha contém uma vírgula de forma confiável: encontre `([^,]+), ([^\r\n]+)` e substitua por `$2 $1`. Aqui, cada grupo captura texto em um lado do separador conhecido, em vez de assumir um número fixo de dígitos.
Uma troca de duas colunas não é uma operação de tabela integrada, apesar do texto geral. Funciona apenas quando o texto colado tem um delimitador confiável e o padrão descreve os limites das linhas com segurança. Vírgulas dentro de nomes, campos ausentes ou guias inconsistentes exigem limpeza ou um padrão mais preciso antes que qualquer substituição em massa seja confiável.
Mais reordenações funcionam apenas quando a entrada tem um separador confiável
Um ponto em um padrão significa quase qualquer caractere, portanto, um padrão de data escrito como `(\d{4}).(\d{2}).(\d{2})` também aceita barras, espaços ou letras entre os campos. Escape de um ponto literal como `\.` e escape de outros metacaracteres quando eles deveriam corresponder a si mesmos. Um colchete inválido ou parênteses inacabados é relatado sem alterar o texto.
A numeração do grupo começa em 1, não em 0. Os cifrões também têm um significado especial de substituição: `$&` insere a correspondência inteira e `$$` produz um cifrão literal. Este comportamento se aplica mesmo quando o modo regex está desativado porque ToolAcre escapa apenas do lado da pesquisa; ele não escapa da string de substituição antes de JavaScript processá-lo.
O que isso não cobre – grupos nomeados, lookbehind e nomes de meses que precisam de uma tabela de pesquisa
Grupos numerados podem reorganizar o texto já presente em uma correspondência, mas não podem traduzir `Jan` em `01` porque isso requer uma pesquisa em vez de reordenação. Este artigo também não depende de grupos nomeados ou lookbehind, cuja utilidade e suporte ao navegador envolvem um conjunto de opções diferente desta simples limpeza de exportação.
A expressão de data verifica a forma, não a verdade do calendário. Irá corresponder a `2024-99-88` porque dois dígitos satisfazem cada grupo menor. Valide datas na planilha ou no sistema de origem quando a correção for importante. Localizar e substituir é apropriado para uma formatação consistente, não para provar que cada mês e dia capturados são válidos.
Conclusão - um padrão, uma substituição, cada linha corrigida de uma vez no Text Toolkit, com desfazer se o resultado não for o esperado
Os grupos de captura transformam uma string correspondente em peças reutilizáveis. Para uma coluna de data uniforme, três grupos preservam o ano, mês e dia originais, enquanto `$3/$2/$1` os coloca na ordem do Reino Unido. A pesquisa global trata todas as correspondências e a contagem relatada fornece uma verificação imediata do número de linhas que você pretendia alterar.
Mantenha o fluxo de trabalho revisável: guarde uma cópia da exportação, use o padrão mais restrito que se ajuste a ela, compare a contagem, inspecione vários resultados e desfaça quando a evidência discordar de sua expectativa. Uma substituição bem definida pode remover edições repetitivas sem fingir que cada valor em forma de dígito é automaticamente uma data válida.