Montar uma expressão regular
Pré-requisito
- Acesso ao menu Cadastro > Perfil de reconhecimento (CAP004).
Apresentação
Na configuração dos índices dos perfis de reconhecimento, é possível utilizar expressões regulares.
Uma expressão regular é uma notação para descrever um padrão de caracteres. Serve para validar entradas de dados ou fazer busca e extração de informações em textos. Por exemplo, para verificar se um dado fornecido é um número de 0,00 a 9,99 pode-se usar a expressão regular ^\d,\d\d$, pois o símbolo \d é um curinga que casa com um dígito.
Os caracteres especiais ^ e $ indicam, respectivamente, como será o início e fim da linha, sem eles, os números 10,00 ou 100,123 seriam válidos, pois contém dígitos que casam com a expressão regular.
Um metacaractere é um caractere ou uma sequência de caracteres com significado especial em expressões regulares. Os metacaracteres podem ser categorizados conforme seu uso.
Em expressões regulares o verbo 'casar' é usado como tradução para match, no sentido de combinar, encaixar, parear.
Especificadores
Especificam o conjunto de caracteres a casar em uma posição.
Metacaractere | Descrição |
. |
Curinga: Casa com qualquer caractere, exceto a quebra de linha \n. |
[…] |
Conjunto: Casa com qualquer caractere incluído no conjunto. Por exemplo: • [a-z] irá aceitar strings com caracteres minúsculos entre 'a' e 'z', enquanto [A-Z] aceitará caracteres maiúsculos entre 'A' e ‘Z’. • [abcABC] irá aceitar strings que contenham apenas os caracteres 'a', 'b', 'c', 'A', 'B' e/ou 'C'. • [123] irá aceitar strings que contenham apenas os caracteres '1', '2' e/ou '3'; • [0-9] irá aceitar strings com caracteres entre '0' e '9'. |
[^...] |
Conjunto negado: Casa com qualquer caractere que não esteja incluído no conjunto. |
\d |
Dígito: O mesmo que [0-9]. |
\D |
Não-dígito: O mesmo que [^0-9]. |
\s |
Branco: Espaço, quebra de linha, tabs etc.; o mesmo que [ \t\n\r\f\v]. |
\S |
Não-branco: O mesmo que [^ \t\n\r\f\v]. |
\w |
Alfanumérico: O mesmo que [a-zA-Z0-9_] (mas pode incluir caracteres Unicode) |
\w |
Não-alfanumérico: O complemento de \w. |
\ |
Escape: Anula o significado especial do metacaractere seguinte; por exemplo,\. representa apenas um ponto, e não o curinga. |
Quantificadores
Definem o número permitido de repetições da expressão regular imediatamente anterior.
Metacaractere | Descrição |
{n} |
Permite exatamente n ocorrências. Por exemplo: • [abc]{3}: Aceita strings contendo 3 caracteres, sendo eles 'a', 'b' ou 'c', como: aaa, abc, acb, bba etc. • [0-9]{5}: Aceita strings com 5 caracteres entre '0' e '9', como: 11111, 12345, 15973 etc. |
{n,m} |
Permite no mínimo n ocorrências e no máximo m. Por exemplo: • [abc]{3,5}: Aceita strings contendo entre 3 e 5 caracteres, sendo eles 'a', 'b' ou 'c', como: aaaaa, acbca, abc, acba etc. • [0-9]{5,6}: Aceita strings contendo 5 ou 6 caracteres entre '0' e '9', como: 12345, 123456, 01030, 000000 etc. |
{n,} |
Permite no mínimo n ocorrências. Por exemplo: • [abc]{2,}: Aceita strings contendo, ao menos, 2 caracteres, sendo eles 'a', 'b' ou 'c', como: aa, abc, ccc, abcabc etc. • [0-9]{2,}: Aceita strings contendo, ao menos, 2 caracteres entre '0' e '9', como: 12, 123, 987654321 etc. |
? |
Permite 0 ou 1 ocorrência; o mesmo que {0,1}. |
+ |
Permite 1 ou mais ocorrências; o mesmo que {1,}. |
* |
Permite 0 ou mais ocorrências. |
Âncoras
Estabelecem posições de referência para o casamento do restante da expressão regular. Note que estes metacaracteres não casam com caracteres no texto, mas sim com posições antes, depois ou entre os caracteres.
Metacaractere | Descrição |
^ |
Casa o início de uma string. |
$ |
Casa o fim de uma string; não captura o \n no fim do texto ou da linha. |
\A |
Início do texto. |
\Z |
Fim do texto. |
\b |
Posição de borda: Encontra uma correspondência no início ou fim de uma string; |
\B |
Posição de não-borda. |
Agrupamento
Definem ou grupos ou alternativas.
Metacaractere | Descrição |
(...) |
Define um grupo, para efeito de aplicação de quantificador, alternativa ou de posterior extração ou reuso |
...|... |
Alternativa; casa a expressão regular à direita ou à esquerda. |
\«n» |
Recupera o texto casado no n-ésimo grupo. |
Exemplos de expressões regulares
Veja alguns exemplos com breves explicações para ter uma ideia geral:
Exemplo 1
Expressão regular:
\d{5}-\d{3}
O padrão de um CEP como 05432-001: 5 dígitos, um - (hífen) e mais 3 dígitos.
A sequência \d é um metacaractere, um curinga que casa com um dígito (0 a 9).
A sequência {5} é um quantificador: indica que o padrão precedente deve ser repetido 5 vezes, portanto \d{5} é o mesmo que \d\d\d\d\d.
Exemplo 2
Expressão regular:
[012]\d:[0-5]\d
Semelhante ao formato de horas e minutos, como 03:10 ou 23:59.
A sequência entre colchetes [012] define um conjunto. Neste caso, o conjunto especifica que o primeiro caractere deve ser 0, 1 ou 2.
Dentro dos [] o hífen indica uma faixa de caracteres, ou seja, [0-5] é uma forma abreviada para o conjunto [012345]; o conjunto que representa todos os dígitos, [0-9] é o mesmo que \d.
Note que esta expressão regular também aceita o texto 29:00 que não é uma hora válida.
Exemplo 3
Expressão regular:
[A-Z]{3}-\d{4}
É o padrão de uma placa de automóvel no Brasil: três letras entre A e Z, seguidas de um - (hífen), seguido de quatro dígitos, como CKD-4592.
Conclusão
Após montar a expressão regular, é possível aplicá-la nas configurações do índice do perfil.