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