Regex brasileiros · Biblioteca de padrões

Regex de chave de acesso da NF-e (44 dígitos)

Regex para a chave de acesso de NF-e e outros documentos fiscais eletrônicos: 44 dígitos, juntos ou em 11 grupos de 4 separados por espaço.

O padrão

\d{44}|(?:\d{4} ){10}\d{4}

Flags: nenhuma. Sem âncoras: para validar um campo inteiro use ^(?:padrão)$.

Só o formato. Este regex confere a aparência do texto. Ele não prova que o dado existe nem que os dígitos verificadores estão certos. Para isso use Decodificador de chave NF-e.

Teste na hora

Tudo roda no seu navegador; nada do que você digita é enviado.

Exemplos

Casam

  • 35260111222333000181550010000012341123456788
  • 3526 0111 2223 3300 0181 5500 1000 0012 3411 2345 6788
  • 31261112345678000100550020000009871876543217
  • 3126 1112 3456 7800 0100 5500 2000 0009 8718 7654 3217

Não casam

  • 3526011122233300018155001000001234112345678
  • 352601112223330001815500100000123411234567880
  • 35260111222333000181X50010000012341123456788
  • 3526 0111 2223 3300 0181 5500 1000 0012 3411 2345 6788
  • NFe35260111222333000181550010000012341123456788
Os números de exemplo são fictícios: foram gerados por cálculo dos dígitos verificadores, sem consulta a nenhum cadastro, e servem só para testar o formato.

Como funciona, por partes

Armadilhas

Código pronto

JavaScript

const re = new RegExp("^(?:\\d{44}|(?:\\d{4} ){10}\\d{4})$");
console.log(re.test(texto.trim()));

Python

import re

re_chave_nfe_44_digitos = re.compile(r"[0-9]{44}|(?:[0-9]{4} ){10}[0-9]{4}")
print(bool(re_chave_nfe_44_digitos.fullmatch(texto.strip())))

C#

using System.Text.RegularExpressions;

var re = new Regex(@"^(?:[0-9]{44}|(?:[0-9]{4} ){10}[0-9]{4})\z");
bool ok = re.IsMatch(texto.Trim());

Perguntas frequentes

Esse regex serve para CT-e e MDF-e?

Serve para o formato, porque esses documentos também usam chave de 44 dígitos. O significado de cada parte muda conforme o modelo, e isso o regex não distingue.

Como ler os campos da chave?

Cortando as posições conhecidas: por exemplo, os dois primeiros dígitos são o código da UF e os quatro seguintes, o ano e o mês de emissão. A ferramenta de decodificação do Me Ajuda Flow faz isso e confere o dígito verificador.

As chaves dos exemplos são de notas reais?

Não. Foram montadas com valores fictícios e o dígito verificador calculado. Não correspondem a notas emitidas e usam um CNPJ de teste gerado por cálculo.

Ferramentas

← Ver todos os padrões