sábado, 8 de abril de 2017

Fontes de estudo de Regex

Busca em textos é uma tarefa rotineira, não somente para a programação. Pode ser para buscar conteúdo para encontrar uma informação relevante, validar alguma entrada de dados ou filtrar informação a ser processada por um software. Para todas as tarefas o Regular Expression (Regex) pode ajudar e há bons cursos para aprendizagem:

Curso de Regex no CodeSchool (Parte Introdutória é gratuita)
https://www.codeschool.com/courses/breaking-the-ice-with-regular-expressions

Curso de Regex com algumas aulas gratuitas:
https://www.lynda.com/Regular-Expressions-tutorials/Using-Regular-Expressions/85870-2.html

Tutorial de Regex com introdução e vários exercícios que podem ser praticados no próprio navegador:
http://regextutorials.com/

Ferramenta para testar expressões Regex:
http://www.regexpal.com/

Tabela com algumas expressões:
https://www.cheatography.com/davechild/cheat-sheets/regular-expressions/

Exercícios para treinar Regex:
https://www.hackerrank.com/domains/regex/re-introduction


Algumas anotações sobre alguns recursos

Repetição

Permite definir repetir a busca do caractere anteriormente informado
  • + = encontra uma ou mais repetições do caractere anterior
  • * = encontra zero ou mais repetições do caractere anterior
  • ? = o caractere anterior se torna opcional
  • {min,max} retorna o número de repetições definidos
    • {3,} encontra no mínimo 3 caracteres
    • {,2} encontra no máximo 2 caracteres
    • {4,5} encontra de 4 a 5

Symbol Set (Grupo de símbolos)

Define um conjunto de caracteres a serem considerados na busca
  • /[a-z]/ = considerada qualquer caractere de a até z
  • /[a-zA-Z]/ = considerada qualquer caractere de a até z ou de A até Z, a ordem de caractere aqui não faz diferença
  • /[a-z]/i = acha a mesma coisa do anterior. o i é um modificador para informar que é case insensitive

Exclusão

  • ^ = Para definir uma exceção de caractere
  • /[^abc]/ = encontra qualquer caracter exceto abc

Pré definidos

\s = acha espaço, tab, nova linha
\w = mesma coisa de letras e números /[a-zA-Z0-9]
\d = mesma coisa de /[0-9]/
\D = qualquer coisa diferente /[0-9]/

Posição

Encontra considerando posição do texto
  • ^ = começo de linha
  • $ = término de linha

Agrupar Pesquisas
  • () cria um grupo que pode ser usado depois
  • \1,\2 repete a busca do grupo já citado
  • (?=CARACTER) busca que olha o próximo caracter sem adiciona-lo na seleção
  • Para usar o grupo do regex para substituição, basta usar $1 para aproveitar o grupo
    (?:expressão) Para ignorar o grupo para reutilização ou substituição