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. Ver conteúdo
[: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
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]; 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
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
Isso resulta em grandes diferenças realizadas em buscas nos documentos escritos na Língua Portuguesa e Inglesa. Ver conteúdo
Como dito, as expressões regulares consideram a Tabela ASCII e, portanto, consideram as diferenças entre localidades. Ver conteúdo
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
A partir do padrão formado, podemos facilmente buscar o resultado inverso, ou seja, partidas com horários entre 30 e 59 min. 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
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
Na sequência, precisaremos buscar minutos e suas variações entre 0 e 2 para o primeiro algarismo, com a expressão ‘[0-2]’. Ver conteúdo
Inicialmente, adicionamos os ‘:’ (dois pontos) para definir horas e minutos, acreditamos que isso facilite o entendimento. Ver conteúdo
Note que o problema apresenta um desafio interessante e, avaliando o cenário apresentado, minutos preciosos certamente seriam gastos nesta tarefa. Como podemos utilizar a REGEX neste caso? 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
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
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; 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
De forma específica os colchetes são usados para criar classes de caracteres, podemos ter uma lista ‘[...]’ e lista negada ‘[^...]’. 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 ([]). 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
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
Metacaracteres Tipo Representante Por exemplo, em uma busca utilizando REGEX, o ponto final (.) é um caractere curinga e corresponde a todos os caracteres. 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