Introdução
Esta Disciplina tem como objetivo apresentar temas atuais que favoreçam o seu aprendizado e os
relacione às Disciplinas cursadas por você até o momento. Nesse sentido, trabalharemos com a
temática das Expressões Regulares (ER), também conhecidas como Regular Expressions (RegEx). Elas
permitem que padrões de caracteres sejam buscados, validados e substituídos, quando necessário.
Segundo Jargas (2012, p. 19) uma expressão regular é um método formal de se especificar um
padrão de texto. Fitzgerald (2012) acrescenta a ideia de que essas strings (texto) são especialmente
codificadas e utilizadas como padrões para combinar com outros conjuntos de strings. Na
programação, string é um conjunto de caracteres cujo valor é texto. Dessa forma, grande parte das
linguagens de programação, interfaces de desenvolvimento (IDE) e editores de texto têm esse
recurso.
Trabalhar com expressões regulares exige bastante treino, pois haverá momentos que um simples:
\d (abreviação que corresponde a qualquer dígito de 0 a 9) poderá resolver um problema, enquanto
em outros, uma expressão mais complexa como ‘^\([1-9]{2}\) (?:[8|9][0-9]{4})-[0-9]{4}$’, será
necessária. Essa expressão corresponde ao número de telefone móvel brasileiro com 11 dígitos,
incluindo os parênteses para a identificação da cidade, espaço e um hífen entre os números. Veja o
exemplo: (99) 99999-9999.
Para tentar deixar as coisas mais claras, vamos pensar em algo simples utilizando ER: imagine um
hipotético viajante que está concluindo suas férias na cidade de Dublin. Ele está no centro da cidade
e precisa chegar ao aeroporto. Sua busca por horários trouxe uma lista com paradas e horários do
ônibus 782. Agora basta procurar embarques entre 4h30 e 4h35.
Obviamente que, nesse exemplo, você poderá simplesmente procurar o horário, sem necessidade
de recursos computacionais. Mas as coisas nem sempre são simples.
Veja a Figura a seguir, que apresenta a timetable do 782, com paradas e horários divididos por dias da
semana. Embora exija um pouco de esforço, ainda é possível localizar os horários desejados sem
grandes dificuldades. Mas, e se precisássemos realizar essa busca utilizando o computador? Ou
então, imagine que você, Analista de Sistemas do time, recebeu do Setor de Planejamento a missão
de ajudar o time front-end a realizar a mudança desses horários no website da Empresa. A tarefa
certamente não seria trivial, concorda? Como as expressões regulares poderiam ser úteis nesse
caso?
Inicialmente, é preciso esclarecer que não há necessidade de conhecer Programação para aplicar
uma REGEX. Basta que a ferramenta com a qual estamos trabalhando permita sua utilização. Com
alusão ao cenário do viajante, basta procurar os embarques realizados entre 4h30 e 4h35 e podemos
ajudá-lo usando o termo ‘^0[0-9]3[0-9]’.
Quanto à expressão apresentada, até o final da disciplina você terá aprendido o significado dela. Por
enquanto, observe, na Figura 2, que apenas os horários definidos foram destacados e isso pode ser
bastante útil em seu trabalho como analista.
A composição de caracteres e símbolos forma uma sequência, que é interpretada como uma regra
e, caso o texto apresente tal equivalência, podemos dizer que deu “match”. Quem define isso é o
compilador/interpretador, quando verificar a combinação entre o conjunto de caracteres e o padrão
pattern procurado. Note que esse padrão procurado pode variar entre datas, horários, endereços de
e-mail, números de documentos como CPF e RG, declaração de funções E dados entre <tags></
tags>, etc.
Voltando ao exemplo do telefone, quando trabalhamos com sistemas de informática, é bastante
comum que os números apareçam no formato sequencial, sem qualquer espaço ou símbolo. Nesse
caso, poderíamos buscá-lo com a REGEX [0-9]. Ela corresponde a qualquer dígito encontrado no
intervalo de 0 a 9. Os colchetes não são correspondidos literalmente porque são tratados
especialmente como metacaracteres. Um metacaractere tem um significado especial em
expressões regulares e é reservado.