Expressões regulares, o básico – parte 3

regex3_abertura.png

Esta é a conclusão desta introdução sobre expressões regulares, nas partes anteriores foram tratados quantificação, agrupamento e também os curingas para a definição do padrão de casamento, ou pattern matching, da/na sua sequência de caracteres.

Agora é a vez das listas, âncoras e, para concluir, todos estes conceitos juntos… 🙂

Continuar lendo

Anúncios

Expressões regulares, o básico – parte 1

regex1_abertura

Expressão regular — ou simplesmente REGEX para encurtar — é uma sequência de caracteres que define um padrão de busca, é geralmente utilizada dentro de algoritmos de pesquisa de texto para busca e/ou substituição de sequências/padrões de caracteres dentro de strings e Por sua praticidade, está implementada dentro de linguagens de programação, ferramentas e até mesmo alguns aplicativos.

Claro que isto aqui não tem o objetivo de ser um tratado sobre o assunto, servindo mais como uma introdução básica para que a visão de algo como um ^[A-Za-z]+ [0-9].*[A-Z][a-z]+$ deixe de causar traumático.

Nesta primeira parte dois conceitos importantes em REGEX, a quantificação (número de vezes que repete, ou não) e o grupo (lista de possíveis ocorrências). E para os exemplos resolvi usar um trauma pessoal, a grafia do meu nome, ou seja, aquilo que me faz recitar o mantra “com «i», dois «n» e «i» no final” sempre que preciso explicar a alguém como escrever meu nome. 🙂

Continuar lendo

REGEX direto no Bash

regexbash_abertura.png

Geralmente quando validava uma sequência de caracteres em shell script usando uma expressão regular eu recorria a uma ferramenta externa (egrep, sed etc) para fazê-lo —  algo como neste exemplo de validação de endereços de e-mail utilizando o egrep:

$ echo "usuario@email.com" |\
  egrep "[a-z0-9._%+-]+@[a-z0-9.-]+\.[a-z]{2,4}$" >/dev/null ; echo $?
0
$ echo "usuario%email-123" |\
 egrep "[a-z0-9._%+-]+@[a-z0-9.-]+\.[a-z]{2,4}$" >/dev/null ;  echo $?
1

Ou seja, o retorno do valor 0 para significando verdadeiro e do valor 1 indicando falso.

Continuar lendo