Aula 08 – 26/04 Trabalho para entrega - Correção exercícios aula passada – Revisão para prova – Uso de expressões regulares - Informações 2º TAE. Trabalho para Entrega TAE Árvores Rubro Negras Árvores Rubro Negras • É uma estrutura que tem como objetivo garantir o balanceamento de uma árvores binárias. • Cada nó é identificado por uma cor Rubro ou Negra. • Dessa forma o fator de balanceamento é o nó ser rubro ou negro. • Na declaração de uma estrutura de árvores rubro-negra vamos ter uma variável que indica a cor(Rubro ou Negra). • A árvores rubro-negras tem as seguintes propriedades • A raiz sempre vai ser negra. • Qualquer caminho da raiz até qualquer folha tem sempre o mesmo número de nós pretos. • Se um nó é rubro os seus filhos devem ser pretos. • Com essas regras termos uma arvores rubro-negra e parcialmente balanceadas. • Se ao inserir um item na árvore as regras forem quebradas deve ser feito rotações e trocas de cores na árvore. Correção exercícios aula 06 Revisão para prova Expressões regulares Definição • Da Wikipédia: “Em ciência da computação, uma expressão regular (ou o estrangeirismo regex, abreviação do inglês regular expression) provê uma forma concisa e flexível de identificar cadeias de caracteres de interesse, como caracteres particulares, palavras ou padrões de caracteres. Expressões regulares são escritas numa linguagem formal que pode ser interpretada por um processador de expressão regular, um programa que ou serve um gerador de analisador sintático ou examina o texto e identifica partes que casam com a especificação dada. • As expressões regulares são utilizadas para avaliar padrões em strings realizando operações em conjunto de caracteres, são muito utilizadas para validar entradas de dados, fazer buscas, e extrair informações de textos. • Expressões regulares são utilizadas por editores de texto, linguagem de programação, programas utilitários, IDE de desenvolvimento. • As expressões regulares também são chamadas de Regex e são independente de linguagem de programação pois seguem o mesmo padrão. As expressões regulares não validam dados apenas verificam se estão em uma determinadas máscara. • As expressões regulares são formadas por metacarateres formando um padrão para obter uma casamento entre os metacrateres e o texto. Termos utilizados • Casar: Tem o significado de combinar uma expressão regular com um texto, é quando metacaractres especificados na expressão regular correspondem aos caracteres dos textos. Ex: \d,\d casa com 9,1 já \d,\d não casa com 91. • Metacaractere: é um caracteres que tem um significado especial na regex. . Curinga Qualquer caractere [...] Conjunto Qualquer caractere incluído no conjunto [^...] Conjunto negado Qualquer caractere não incluído no conjunto \d Dígito o mesmo que [0-9] \D Não-digito o mesmo que [^0-9] \s Branco \S Não-branco \w Alfanumérico \W Não-alfanumérico \ Escape Faz com que o caracteres não seja avaliado na Regex () Grupo É usado para criar um agrupamento de expressões I Significa OU casa|bonita – pode ser casa ou bonita * Termo está no final da expressão Termo está no início da expressão. casa* - bonitacasa. Não pode ser casabonita ^casa – casabonita. Não pode ser bonitacasa ^ o mesmo que [a-zA-Z0-9_] • Quantificadores (são tipos de metacaracteres): Define o número permitido de repetições da expressão regular. {n} Exatamente n ocorrências {10} {n,m} No mínimo n ocorrências e no máximo m {4,5} {n,} No mínimo n ocorrências {20,} {,n} No máximo n ocorrências {,15} ? 0 ou 1 ocorrência car?ro – caro ou carro. + 1 ou mais ocorrência * 0 ou mais ocorrência ca*ro –carro, carrro, carrrro. Nunca será caro. ca*ro – caro, carro, carro, carrrro Exemplos As expressões regulares devem inicial com ^ e terminal com $ ^\d{5}-\d{3}$ ^[A-Z]{3}\d{4}$ Validar o CEP Metacaracteres \d Quantificador {5} Hifen Meta caracteres \d Quantificador {5} Placa de um Espeficicador [A-Z] automóvel Quantificador {3} Metacaracteres \d Quantificador {4} Casado: 89900-000, 87711000. Não Casado: 87711-00077, 89900000. Casado: ACB1234, Não casado: ACB12345 Usando Expressões regulares em Delphi: • O recurso para uso de expressões regulares foi incluído no Delphi a partir da versão XE. Anteriormente se utilizava componentes de terceiros. • A record TRegEx é a principal recurso para manipular expressões regulares, esse record está disponível na unit System.RegularExpressions. • A função mais comum e utilizada para validar expressões regulares e a IsMatch, essa função está presente na regex TRegEx e casa uma expressão regular com um texto retornado um valor Booleano. • Dessa forma podemos armazenar a expressão regular em um variável string e verificar o retorno com o valor a ser comparado. Usando TRegEx procedure TForm1.BitBtn1Click(Sender: TObject); begin if (TRegEx.IsMatch('^\d{5}-\d{3}$', ‘89900-000')) then ShowMessage('RegEx casado') else ShowMessage('RegEx não casado') end; procedure TForm1.BitBtn2Click(Sender: TObject); var ExpressaoRegular: TRegEx; begin ExpressaoRegular := TRegEx.Create('^\d{5}-\d{3}$'); if (ExpressaoRegular.IsMatch('ACB1324')) then ShowMessage('RegEx casado') else ShowMessage('RegEx não casado') end;