Alguns dos exemplos são: ^[AO] - localizar linhas iniciadas pelos artigos definidos; [0-9]$ - localiza linhas dígitos ao final da linha e não da palavra; [.;]$ - localiza linhas que encerram com um ponto final ou ponto e vírgula. Ver conteúdo
Metacaracteres Tipo Âncora Os metacaracteres do tipo âncora marcam uma posição específica na linha. As âncoras comumente usadas são o acento circunflexo ‘^’ e o cifrão ‘$’. Eles correspondem, respectivamente, ao início e ao final de uma linha. Ver conteúdo
Para concluir os metacaracteres quantificadores, temos as chaves ‘{}’. Com elas, podemos especificar exatamente quantas repetições do elemento anterior estamos procurando. É possível buscar o número exato de ocorrências utilizando ‘{valor}’, ou intervalos com ‘{min,max}’ e ‘{min,}’. Faça o teste: qual seria o match da REGEX ‘\d{4}’ para o número de telefone: (99) 99999-9999? Ver conteúdo
Considerando uma página web com código HTML e suas tags de abertura e fechamento, a instrução ‘+html’ daria match apenas com a tag de fechamento. Isso, porque exige que um ou mais atributos ‘/’ sejam contemplados, enquanto ‘*html’, em que não existe a ocorrência da entidade, retorna positivo para ambas as tags. Ver conteúdo
Para buscar as repetições também podemos utilizar o asterisco ‘*’, que retorna o resultado positivo com zero ou mais ocorrências e o sinal de positivo ‘+’, que dá match quando localiza uma ou mais ocorrências. Ver conteúdo
Iniciando pelo operador simbolizado pelo ponto de interrogação ‘?’, ele é o chamado opcional e sempre dará match se houver ou der ocorrências da entidade anterior. A instrução 'código?' retornaria tanto a palavra ‘código’ quanto a palavra 'códigos' no plural. Ver conteúdo
Metacaracteres Tipo Quantificador Em uma sequência de caracteres, é comum que haja repetições ao longo do documento e quantificar essas ocorrências é fundamental para criarmos REGEX. A categoria de metacaracteres do tipo quantificador permite verificar o número de repetições entre as entidades. Ver conteúdo
Embora existam outras classes, nesta Disciplina, iremos nos concentrar nas que foram apresentadas até agora. Você perceberá que elas são suficientes para cobrir grande parte das combinações e para iniciar suas REGEX de forma muito ampla. Além disso, esse é um convite para que você acesse os Materiais Complementares e aprofunde o conhecimento no assunto. Ver conteúdo
seria o suficiente para localizar todas as ocorrências e então removê-las. Outra forma de atender a solução seria buscar todos os caracteres alfanuméricos, ou seja, letras e números e, então, negar a lista dessa forma ‘[^[:alnum:]]’. Ver conteúdo
Para contextualizar a utilização de algumas dessas classes, pensemos em uma nuvem de palavras na qual os termos mais comuns são apresentados com maior destaque. A contagem das palavras apresentadas exige que todas as pontuações sejam removidas e com isso a instrução ‘[[:punct:]]’ Ver conteúdo
Vejamos algumas: [:upper:] - busca letras maiúsculas, equivalente a [A-Z]; [:lower:] - busca letras minúsculas, equivalente a [a-z]; [:alpha:] - busca letras maiúsculas e minúsculas, equivalente a [A-Za-z]; [:alnum:] - busca letras e números, equivalente a [A-Za-z0-9]; [:digit:] - busca letras e números, equivalente a [0-9]; [:punct:] - busca sinais de pontuação, equivalente a [.' !?: ... ]. Ver conteúdo
Embora sejam declaradas entre dois pontos e colchetes, é importante lembrar que esses colchetes não se referem às listas. Ver conteúdo
Para a nossa sorte, alguns artifícios foram criados para auxiliar o trabalho com listas. Sobretudo, quando pensamos na localidade do sistema, as classes denominadas POSIX operam como um padrão para determinar interfaces comuns entre sistemas operacionais. Ver conteúdo
Como dito, as expressões regulares consideram a Tabela ASCII e, portanto, consideram as diferenças entre localidades. Isso resulta em grandes diferenças realizadas em buscas nos documentos escritos na Língua Portuguesa e Inglesa. O alfabeto norte-americano não tem caracteres acentuados como ‘áéóõç’, ‘áéíóú’ ou ‘ÁÉÍÓÚ’. Logo, a instrução ‘[a-z]’ não retornaria os caracteres minúsculos. Ver conteúdo
A partir do padrão formado, podemos facilmente buscar o resultado inverso, ou seja, partidas com horários entre 30 e 59 min. Uma forma de fazer isso seria modificar a expressão anterior com uma lógica inversa, ou seja, negar o termo anterior pode trazer os valores procurados. A nova expressão ficaria ‘:[^0-2][\d]’. Ver conteúdo
Assim, temos ‘:[0-2][0-9]’. Essa, no entanto, não é a única forma de realizar uma busca por dígitos decimais. O comando ‘\d’ é relativo a qualquer dígito decimal entre 0 e 9. Com isso, poderíamos usar ‘:[0-2][\d]’ para obter o mesmo resultado. Ver conteúdo
Por fim, precisaremos do complemento que pode ser qualquer dígito entre 0 e 9. Pensando na descrição anterior, teríamos duas possibilidades, ‘[0123456789]’ ou ‘[0-9]’, sendo o segundo menor, mais intuitivo e mais interessante para essa situação. Ver conteúdo
Note que uma REGEX pode ser construída com diferentes intervalos numéricos e textuais. Para saber o que cada intervalo contempla é preciso estar atento(a) à Tabela ASCII, pois ela fornece as diretrizes sobre o conjunto de caracteres presentes em uma sequência. Ver conteúdo
Um breve exemplo a partir desse segundo argumento seria a busca textual da palavra ‘não’ escrita sem o acento. A instrução ‘n[aã]o’ traria ambos os resultados, com ou sem acento. Ver conteúdo
Note que o ‘-’ (hífen) representando o intervalo entre os valores foi colocado. A ausência desse operador definiria a busca exclusiva dos termos: 0 ou 2. Ver conteúdo
Assim, caso a partida seja às 04:22, o novo horário será 04:15, em outra situação com partida às 08:55, o horário deve ser ajustado para 08:45. Ver conteúdo
Considere a Figura 2 apresentada mais cedo, caso fosse necessária uma reorganização dos horários com os seguintes critérios: As partidas devem ser realizadas a cada 30 minutos; Partidas realizadas entre hora cheia (00) e 29 min. devem mudar para 15 min.; Partidas realizadas entre 30 e 59 minutos devem mudar para 45. Ver conteúdo
Junto com o ponto final, as listas formam uma categoria de representantes. Há, ainda, o grupo de quantificadores, âncoras e alguns outros, mas, por hora, vamos falar um pouco mais sobre as listas. Ver conteúdo
Além do ponto final, que representa todos os caracteres, há opções de representar um ou mais caracteres por meio dos colchetes ([]). De forma específica os colchetes são usados para criar classes de caracteres, podemos ter uma lista ‘[...]’ e lista negada ‘[^...]’. Ver conteúdo
Ao adicionarmos uma barra invertida antes desse metacaractere, teremos outro resultado. O match é feito apenas quando um ponto final for encontrado na cadeia de caracteres. Ver conteúdo
Metacaracteres Tipo Representante Por exemplo, em uma busca utilizando REGEX, o ponto final (.) é um caractere curinga e corresponde a todos os caracteres. Ao proceder utilizando esse caractere de forma exclusiva, obteremos como resultado todos os caracteres da string, sendo exibidos um por um como decorrência da busca. Ver conteúdo
Todos eles têm alguma função especial dentro das expressões regulares e quando não estivermos nos referindo a essas expressões, podemos simplesmente utilizar o escape antes deles. Por exemplo: ‘\.’ ,‘\*’, ‘\^’, ‘\$’, ‘\[’, ‘\]’, etc. Ver conteúdo
Também chamamos esse recurso de escape. ele retorna o valor literal do elemento à sua direita. Veremos diversos metacaracteres, como ‘.’ ,‘*’, ‘^’, ‘$’, ‘[’, ‘]’ etc. Ver conteúdo
Os metacaracteres têm funções especiais e não podem ser usados como um caractere literal. Caso esse seja o objetivo, o metacaractere deve ser precedido por uma barra invertida (\). Ver conteúdo
Metacaracteres Formada pelo agrupamento entre símbolos chamados de metacaracteres e caracteres literais, uma expressão pode ser considerada uma regra pois, diante das condições estabelecidas, retorna somente os resultados positivos. Ver conteúdo