Escolar Documentos
Profissional Documentos
Cultura Documentos
Uso
Expresses regulares so usadas por diversos editores de texto, utilitrios e linguagens de programao para
procurar e manipular texto baseado em padres.
Outro uso a validao de formatos de texto (validao de protocolos ou formatos digitais). Por exemplo, ao
receber a entrada dum campo de formulrio duma aplicao que supe receber um endereo de e-mail, pode-se
usar uma expresso regular para garantir que o que foi recebido de fato um endereo de e-mail.
Mais um uso a implementao interna dum sistema de realce de sintaxe, como encontrado em ambientes
de desenvolvimento integrado. Expresses regulares podem ser usadas para encontrar palavras reservadas, literais e
outros tokens especficos, e para alterar a formatao do texto de acordo com o casamento feito.
Sintaxe
De 1986, a norma IEEE POSIX 1003.2 (POSIX.2) padroniza expresses regulares, e fornece duas especificaes, a
saber: o conjunto bsico (BRE) e o conjunto estendido (ERE).
BRE: expresses regulares bsicas
Na sintaxe de BRE, a maioria dos caracteres tratada como literais eles casam somente com eles prprios (por
exemplo, a casa "a"). As excees so chamadas metacaracteres ou metasequncias, definidos abaixo:
Metacaractere
Descrio
Padres individuais
[ ]
Lista de caracteres. Casa uma ocorrncia de qualquer caractere contido na lista. Ex.:
[abc] casa "a","b" ou "c". possvel definir intervalos de caracteres: [a-z] casa
qualquer caractere de "a" a "z", e [0123456789] igual a [0-9]. Caractere "-"
tratado como literal se for o primeiro ou o ltimo da lista, ou se for escapado: [abc], [-abc] ou [a\-bc].
[^ ]
BRE: \( \)
ERE: (
\n
Grupo de captura. Marca uma subexpresso. A cadeia de caracteres que casa com
o contedo dentro dos parnteses pode ser chamada posteriormente.
Associado com o item anterior. Casa a n-sima subexpresso marcada, em que n
um dgito de 1 a 9. Essa construo teoricamente irregular e no foi adotada pela
sintaxe POSIX ERE. Algumas ferramentas permitem referenciar mais de nove grupos
de captura.
BRE: \{ m,n\}
ERE: {m,n}
Casa o elemento precedente zero ou mais vezes. Ex.: ab*c casa "ac", "abc",
"abbbc", etc... [xyz]* casa "", "x", "y", "z", "zx", "zyx, "xyzzy", e assim por diante.
\(ab\)* casa "", "ab", "abab", "ababab", e assim por diante.
Casa o elemento precedente pelo menos m vezes e no mais que n vezes. Ex.:
a\{3,5} casa somente "aaa", "aaaa" e "aaaaa". Esta funcionalidade no
encontrada em algumas implementaes muito antigas. Outras opes incluem
omitir um dos campos. Ex.: a\{3,\} casa pelo menos trs "a"s. J a\{3\} casa
somente trs "a"s. b{0,} anlogo a b*, b{0,1} anlogo a b? e b{1,} idntico a
b+.
Ex.: ac?o
Ex.: ab*c
Ex.: ab+c
aco
ao
ac
abc
abbc
abbbc , etc.
abc
abbc
abbbc , etc.
Exemplos comentados
Data
^([1-9]|0[1-9]|[1,2][0-9]|3[0,1])/([1-9]|1[0,1,2])/\d{4}$
1) ^ permite apenas os caracteres dentro do intervalo, fechado por $.
2) O primeiro parntese indica trs possibilidades de data:
[1-9] : dias como 1, 2, 3, 4, at 9; ou
0[1-9]: dias como 01,02,03,04 at 09 ou
[1,2][0-9]: dias como 10,11,12,13,14,15,16,17,18,19,20,21,22,...,29
3) Aps a / delimitadora, temos duas opes para ms:
[1-9]: 1 (janeiro), 2 (fevereiro), ... 9 (setembro) ou
1[0,1,2]: 10 (outubro), 11 (novembro) ou 12 (dezembro).
4) \d{4}: indica que devem ser escritos 4 dgitos quaisquer.
Nmero decimal
^\d*[0-9](\.\d*[0-9])?$
1)
2)
3)
4)
5)
Arquivos documentos
^[a-zA-Z0-9-_\.]+\.(pdf|txt|doc|csv)$
1) ^ permite apenas os caracteres dentro do intervalo, fechado por $.
2) [a-zA-Z0-9-_\.]: lista de caracteres. Qualquer um dos caracteres de dentro dos colchetes vlido. "a-z
indica todas as letras minsculas do alfabeto, "A-Z indica todas as letras maisculas do alfabeto, 0-9 todos
os algarismos naturais, _ o smbolo de underline e \. para o ponto.
3) A cruz + indica que h uma ou mais ocorrncias do elemento predecendente.
4) Deve ter um ponto (\.) e alguma das extenses dentro dos parnteses (pdf|txt|doc|csv).
Endereo IP
^((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.) {3}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})$
1) ^ permite apenas os caracteres dentro do intervalo, fechado por $.
2) Nos primeiros parnteses, temos:
(25[0-5]: O nmero 25 precedido por 1 caractere de 6 possveis, de 0 a 5 ou (|)
2[0-4][0-9]: O nmero 2 precedido por 1 caractere de 5 possveis, de 0 a 4 que precedido por 1 caractere
de 0 a 9 ou
1[0-9]{2}: O nmero 1 precedido por 2 caracteres de 10 possveis (o trecho {2} indica que 2 o nmero
de caracteres referentes ao intervalo de 0 a 9 que deve ser digitado para atender expresso regular) ou
[0-9]{1,2}): 1 ou 2 caracteres do intervalo de 0 a 9.
\.) : insere o ponto que marca o trmino do primeiro octeto e o incio do segundo.
3) {3}: indica que se repete 3 vezes TODO o contedo dentro dos parnteses.
4) Como o 4 octeto no possui ponto final, todo o contedo do parntese copiado s que sem o \. .