Antes de usar expressões regulares para verificar números, pense primeiro no que fazer com caracteres de largura total.

O número `AB-1234` parece simples, mas a entrada real pode ter prefixos, novas linhas ou caracteres de largura total. Basta escrever uma regra regular e deixá-la ir quando vir "correspondência com sucesso". É fácil confundir a substring atingida com o campo inteiro em conformidade com o protocolo.

Ao escrever um número de verificação regular, a entrada pode conter prefixos, novas linhas ou caracteres de largura total. Se você vir apenas "correspondência com sucesso" e deixá-lo ir, é fácil considerar uma ocorrência de substring como o campo inteiro em conformidade com o protocolo. Este artigo é adequado para desenvolvedores que precisam verificar números como AB-1234, bem como para aqueles que protegem identificadores durante a tradução de documentos ou processamento de dados. Após a leitura, você será capaz de distinguir entre verificação de formato e verificação de string inteira e definir estratégias de processamento claras para situações de largura total, nova linha, maiúsculas e minúsculas, etc.

Os exemplos neste artigo usam amostras sintéticas e o código foi verificado por amostra em um ambiente isolado, mas isso não representa uma garantia de todos os arquivos reais ou efeitos do produto. Antes de processar documentos importantes, guarde os originais e revise-os de acordo com os limites e itens de aceitação do texto.

Use expressões regulares para verificar números, o que fazer com caracteres de largura total? Conclusão de uma frase

Primeiro esclareça as regras: duas letras latinas maiúsculas, um travessão e quatro dígitos ASCII, com comprimento total de sete caracteres. Caracteres de largura total são rejeitados diretamente e, em seguida, decidem se devem ser normalizados.

sua situaçãoPráticas recomendadasrazão
É necessário confirmar se toda a string está em total conformidade com o protocolo de numeraçãoRestringir comprimento e modo simultaneamenteO pattern do esquema JSON, por padrão, requer apenas que uma correspondência possa ser encontrada na string
A entrada pode ter uma nova linha ou prefixo à direitaDetermine se deseja remover de acordo com o protocolo claramente inserido e não o libere automaticamente.O acerto da substring não é igual a todo o campo em conformidade com o protocolo
Insira letras ou números de largura totalRejeite primeiro, estratégia de normalização definida separadamenteA rejeição é mais fácil de solucionar do que a conversão automática
Cada módulo diferente processa metade doUnificado em um conjunto claro de estratégiasO processamento descentralizado tornará a solução de problemas mais difícil

O comprimento e o modo devem ser limitados separadamente

pattern no esquema JSON geralmente indica que a expressão regular pode encontrar uma correspondência na string e não implica a correspondência de toda a string. Este artigo requer duas letras latinas maiúsculas, um travessão e quatro dígitos ASCII para um comprimento total de sete caracteres. Definir a duração e o modo ao mesmo tempo pode esclarecer o escopo deste protocolo específico.

As implementações regulares variam entre os idiomas, especialmente âncoras, classes de caracteres Unicode e escape. Não declare diretamente uma expressão específica do idioma para ser suportada por todas as implementações do esquema JSON.

Teste com contra-exemplos semelhantes

from jsonschema import Draft202012Validator

schema = {"type": "string", "minLength": 7, "maxLength": 7,
          "pattern": "[A-Z]{2}-[0-9]{4}"}
validator = Draft202012Validator(schema)
valid = lambda x: not list(validator.iter_errors(x))

assert valid("AB-1234")
assert not valid("prefix-AB-1234")
assert not valid("AB-1234\n")
assert not valid("AB-1234")
assert not valid("AB-1234")
assert not valid("ab-1234")

Esta regra opta por rejeitar caracteres de largura total em vez de normalizá-los automaticamente. Outro sistema pode optar por normalizar e depois verificar, mas deve reter o valor original e o registro de conversão. Ambos os métodos são estratégias claras, mais fáceis de solucionar do que fazer metade deles em módulos diferentes.

Só porque não está em conformidade com o formato não significa que possa ser reparado casualmente.

digitarO resultado deste exemploAções subsequentes opcionais
AB-1234passarVerifique novamente se este número existe na empresa
com nova linha à direitarejeitarDetermine se deseja remover de acordo com o protocolo de entrada explícito
Alfanumérico de largura totalrejeitarAs estratégias de normalização devem ser definidas separadamente
Incompatibilidade de casorejeitarNão capitalize automaticamente sob regras desconhecidas

O formato correto é apenas a primeira verificação

A expressão regular não pode provar que o número realmente existe, nem pode provar que pertence ao cliente atual ou corresponde ao documento atual. Depois que o OCR reconhece O como 0, a sequência ainda pode satisfazer um determinado padrão amplo. Os campos de alto risco precisam verificar o local de origem e os dados comerciais, e os resultados da verificação de formato não podem ser considerados diretamente como"extraídos corretamente".

Trate os identificadores como conteúdo protegido ao traduzir

Nos fluxos de trabalho de tradução de documentos, a numeração geralmente precisa ser preservada como está. Ao avaliar a saída de OmniDoc (portal de produtos), você pode usar esse tipo de contrato para verificar se o identificador tem largura total, maiúsculas e minúsculas alteradas ou caracteres ausentes e, em seguida, voltar ao texto original para confirmar. As regras de verificação neste artigo pertencem ao seu contrato de entrega, não às instruções internas de implementação da plataforma.

Referências: Esquema de string do esquema JSON

📊 Comparação principal

estratégia de processamentopráticaPontos aplicáveis
Recusar largura totalQuando a entrada contém caracteres de largura total, ela será considerada diretamente com falha.As regras são simples e fáceis de solucionar
Verificação após normalizaçãoConverta primeiro para meia largura e depois verifiqueTanto o valor original quanto o registro de conversão precisam ser retidos
Faça metade de cada móduloCada módulo lida com algumas regras separadamenteNão recomendado, difícil de verificar uniformemente

🎯 Qual método é adequado para você?

Se você precisar verificar rigorosamente o número

Defina também o comprimento e o modo e confirme a âncora da regex e o comportamento da classe de caracteres na implementação de destino.

Se sua entrada puder conter caracteres de largura total

Primeiro escolha uma estratégia de rejeição ou normalização e anote na documentação.

Se você estiver processando digitalizações ou resultados de OCR

Após a aprovação do formato, ele ainda precisa ser retornado ao local de origem para verificação, e os campos de alto risco exigem verificação comercial.

❓ Perguntas frequentes (FAQ)

1. pattern do esquema JSON exigirá que toda a string seja correspondida?

Este não é o padrão, geralmente significa que uma correspondência pode ser encontrada na string, portanto, uma restrição de comprimento precisa ser usada para limitar o intervalo geral.

2. As quebras de linha devem ser removidas diretamente dos números com quebras de linha à direita?

Não deve ser liberado automaticamente e a remoção deve ser decidida de acordo com um protocolo de entrada claro.

3. Os caracteres de largura total devem ser rejeitados ou normalizados?

Ambas são estratégias claras. O exemplo neste artigo opta por rejeitar e outro sistema pode normalizar, mas os valores originais e os registros de conversão devem ser mantidos.

4. A verificação de formato foi aprovada, significa que o número está correto?

não pode. As expressões regulares só podem verificar o formato, mas não podem provar que o número realmente existe ou pertence ao cliente e documento atual.

📝 Resumo

A verificação de número primeiro distingue a verificação de formato e a verificação de string inteira e, em seguida, define uma estratégia unificada para largura total, quebras de linha e maiúsculas e minúsculas. Depois que a formatação for aprovada, você ainda precisará voltar à fonte e verificar os dados do negócio.

Experimente agora: carregue o documento para iniciar a tradução, mantendo o layout original

Atualizado em 2026-11-13