Baixe o app para aproveitar ainda mais
Prévia do material em texto
Programação para Servidores Aula 23 Sumário • Expressões regulares; 2 Expressões Regulares • Uma expressão regular é um método formal de se especificar um padrão de texto; • Em outras palavras, é um conjunto de caracteres com funções especiais e caracteres literais, que, agrupados entre si, formam uma expressão que: – Define um padrão ou um conjunto de regras; – Pode ser usada para comparar uma ou mais entradas de dados: • Quando uma entrada de dados obedece às regras determinadas pela expressão regular em questão, dizemos que ela casa com o padrão; 3 Expressões Regulares • Usualmente são uLlizadas em: – Pesquisas de textos que se encaixam em determinado critério; – Validação de informações em cadastros, etc. • Expressões regulares são consLtuídas a parLr de: – Caracteres normais ou literais; – Caracteres especiais, que podem ser: • Representantes, quanLficadores, âncoras ou outros. 4 Expressões Regulares • Metacaracteres representantes / significado: . (ponto) -‐ um caractere qualquer [...] (lista) -‐ lista de caracteres permiLdos [^...] (lista negada) -‐ lista de caracteres proibidos • Metacaracteres quanLficadores / significado: ? (opcional) -‐ zero ou um * (asterisco) -‐ zero, um ou mais + (mais) -‐ um ou mais {n, m} (chaves) -‐ de n até m 5 Expressões Regulares • Metacaracteres âncoras / significado: ^ (circunflexo) -‐ início da linha $ (cifrão) -‐ final da linha \b (borda) -‐ início ou fim de palavra • Outros metacaracteres / significado: \ (escape) -‐ torna literal o caractere à sua direita | (ou) -‐ um ou outro (...) (grupo) -‐ delimita um grupo \1...\9 (retrovisor) -‐ texto casado nos grupos 1...9 6 Expressões Regulares • Metacaracteres Lpo representante -‐ casam com a posição de um único caractere; . (ponto): casa com qualquer caractere (letra, número, tabulação, @, etc.), inclusive com o caractere ponto; – Exemplos (expressões e cadeias que casam com o padrão): n.o -‐ não, nao, n.o, n5o, nAo, ... e.tendido -‐ estendido, extendido, entendido, ... 12.45 -‐ 12:45, 12 45, 12345, 12.45, ... <.> -‐ <B>, <i>, <p>, ... 7 Expressões Regulares • Metacaracteres Lpo representante (conLnuação...): – Uma lista guarda os caracteres com o qual o casamento é permiLdo. Caracteres que não constam da lista impedem o casamento. – Exemplos (expressões e cadeias que casam com o padrão): n[ãa]o não, nao e[sn]tendido estendido, entendido 12[:. ]45 12:45, 12.45, 12 45 <[BIP]> <B>, <I>, <P> – Dentro da lista todos são caracteres normais. Neste caso, o ponto é considerado como o caractere ponto comum, não como o metacaractere ponto. 8 Expressões Regulares • Metacaracteres Lpo representante (conLnuação...): – Uma lista também aceita intervalos. Exemplos: [0-9] equivale a [0123456789] [a-z] equivale a [abcdefghijklmnopqrstuvwxyz] [A-Z] equivale a [ABCDEFGHIJKLMNOPQRSTUVWXYZ] [3-8] equivale a [345678] [d-h] equivale a [defgh] [A-Za-z0-9] equivale a letras maiúsculas, minúsculas ou números; 9 Expressões Regulares • Metacaracteres Lpo representante (conLnuação...): – Quando precisamos uLlizar o caractere traço em uma lista, ele deve estar no final da lista. Assim o padrão [a-‐g-‐] casa com as letras de a até g e com o traço; – Os colchetes também devem receber atenção especial. Para representar o colchete que abre não há problema, ele pode aparecer em qualquer posição da lista, porém o colchete que fecha deve ser obrigatoriamente o primeiro item da lista, caso exista: • Por exemplo, a lista [][-] casa com ], [, ou -. 10 Expressões Regulares • Metacaracteres Lpo quanLficador: – Indicam o número de repeLções permiLdas para a enLdade imediatamente anterior; ? (opcional) -‐ indica que a enLdade anterior pode ocorrer 0 ou 1 vez; – Exemplos (expressões e cadeias que casam com o padrão): casas? casa, casas; fala[r!]? falar, fala!, fala; </?[BIPbip]> </B>, </I>, </P>, </b>, </i>, </p>, <B>, <I>, <P>, <b>, <i>, <p>; 11 Expressões Regulares • Metacaracteres Lpo quanLficador (conLnuação...): * indica que a enLdade anterior pode aparecer quantas vezes for necessário (0, 1 ou mais); – Exemplos (expressões e cadeias que casam com o padrão): 3*4 4, 34, 334, 3334, 33334, 333334, ..., 333333334, ... bi*p bp, bip, biip, biiip, ..., biiiiiiiiiiiiip, ... b[ip]* b, bi, bp, bip, bpipippp, bipiiippi, ... – A expressão .* representa qualquer caractere em qualquer quanLdade; 12 Expressões Regulares • Metacaracteres Lpo quanLficador (conLnuação...): + tem funcionamento parecido com o *, porém ele obriga que o caractere apareça pelo menos uma vez; – Exemplos (expressões e cadeias que casam com o padrão): 3+4 34, 334, 3334, 33334, 333334, ..., 3333333334, ... bi+p bip, biip, biiip, ..., biiiiiiiiiiiiip, ... b[ip]+ bi, bp, bip, bpipippp, bipiiippi, ... 13 Expressões Regulares• Metacaracteres Lpo quanLficador (conLnuação...): {n,m} significa repeLr a enLdade anterior um mínimo de n e um máximo de m vezes. – Exemplos (expressões e cadeias que casam com o padrão): 3{1,3}4 34, 334, 3334; bi{2,5}p biip, biiip, biiiip, biiiiip; no{4}ta noooota; fu{3,}i fuuui, fuuuui, fuuuuui, fuuuuuui, ...; 14 Exercícios • Escrever expressões regulares para casar com: 1. A palavra “frase” no singular e no plural; 2. A palavra “letra” podendo conter qualquer combinação de letras maiúsculas e minúsculas; 3. Números inteiros; 4. Hora de 00:00 a 23:59; 15 Exercícios – Aula 23 • Respostas: 1. A palavra “frase” no singular e no plural; frases? 2. A palavra “letra” podendo conter qualquer combinação de letras maiúsculas e minúsculas; [lL][eE][tT][rR][aA] 3. Números inteiros; \-?[0-9]+ 4. Hora de 00:00 a 23:59; [0-2][0-9]:[0-5][0-9] 16
Compartilhar