Expressão Regular: Um método formal de se especificar um padrão de texto.
Expressão Regular: Como o brinquedo LEGO, várias pecinhas diferentes, cada uma com sua característica, que juntas compõem estruturas completas e podem ser arranjadas com infinitas combinações diferentes.
Expressão Regular: Uma composição de símbolos, caracteres com funções especiais, que, agrupados entre si e com caracteres literais, formam uma seqüência, uma expressão. Essa expressão é interpretada como uma regra, que indicará sucesso se uma entrada de dados qualquer casar com essa regra, ou seja, obedecer exatamente a todas as suas condições.
Está com tempo? Leia agora a versão online do meu livro de Expressões Regulares!
Destaques: Apostila de introdução, Livro em português, Testador online, 10 anos de regex.
Veja também: Sed, Vim, Shell Script, Cygwin, CODARE, docz nerdz.
Livros que escrevi
Expressões Regulares - Uma abordagem divertida (5ª edição) Livro de 248 páginas lançado em fevereiro de 2016, escrito em uma linguagem descontraída e didática, que leva o leitor a uma viagem ao mundo das Expressões Regulares. Está à venda na maioria das livrarias do país, na versão impressa e também em e-book (livro digital). ISBN: 978-85-7522-474-8 |
|
Expressões Regulares - Uma abordagem divertida (4ª edição) Livro de 224 páginas lançado em novembro de 2012, escrito em uma linguagem descontraída e didática, que leva o leitor a uma viagem ao mundo das Expressões Regulares. ISBN: 978-85-7522-337-6 [ESGOTADO] |
|
Expressões Regulares - Uma abordagem divertida (3ª edição) Livro de 208 páginas lançado em outubro de 2009, escrito em uma linguagem descontraída e didática, que leva o leitor a uma viagem ao mundo das Expressões Regulares. ISBN: 978-85-7522-212-6 [ESGOTADO] |
|
Expressões Regulares - Uma abordagem divertida (2ª edição) Livro de 168 páginas lançado em 2008, escrito em uma linguagem descontraída e didática, que leva o leitor a uma viagem ao mundo das Expressões Regulares. ISBN: 978-85-7522-173-0 [ESGOTADO] |
|
Expressões Regulares - Uma abordagem divertida (1ª edição) Livro de 144 páginas lançado em 2006, escrito em uma linguagem descontraída e didática, que leva o leitor a uma viagem ao mundo das Expressões Regulares. ISBN: 85-7522-100-0 [ESGOTADO] |
|
Expressões Regulares - Guia de Consulta Rápida — LEIA ONLINE Livro de 96 páginas lançado em 2001, escrito em uma linguagem descontraída e didática, que leva o leitor a uma viagem ao mundo das Expressões Regulares. Tem o formato "de bolso", fácil de carregar. Também pode ser consultado integral e gratuitamente na Internet. ISBN: 85-7522-011-X [ESGOTADO] |
Referências do livro
Vídeo-aulas que fiz
Artigos que escrevi
Conhecendo as Expressões Regulares (Apostila em PDF) ★ Apostila introdutória sobre Expressões Regulares, que apresenta o conceito e explora todos os metacaracteres básicos, um a um e de maneira sequencial. A explicação se dá por exemplos que podem (devem) ser executados pelo leitor na linha de comando. Boa para quem nem faz idéia do que sejam as expressões e quer aprender a usá-las.
Resumo das Expressões Regulares (cheat sheet, PDF) ★ Várias tabelas resumindo os metacaracteres, escapes, classes POSIX, precedência e outros detalhes das Expressões Regulares. Tudo numa única página A4, pronta para imprimir.
Expressões regulares em bancos de dados SQL Artigo que explica como usar as expressões nos principais bancos de dados: Oracle, PostgreSQL, MySQL, MariaDB e SQLite.
Em regex, nem sempre menos é mais Artigo que demonstra porque é importante fazer uma expressão legível, mesmo que não seja a versão mais eficiente.
Escreva corretamente: CaracterE cUringa Não diga "coringa" quando o certo é curinga.
Não diga "caracter", "carácter" ou "caráter" quando o certo é caractere.Meus 10 anos de Expressões Regulares Texto recheado de nostalgia e reflexões, que conta os meus 10 anos de Expressões Regulares. Como fui conhecê-las, como foi o aprendizado, o programa txt2regex e como acabei escrevendo um livro (mais de um!) sobre o assunto.
Prompt-doc: Expressões Regulares - Introdução Documento que registra o histórico da linha de comando de uma palestra sobre Expressões Regulares ministrada pelo Aurelio para os funcionários da Conectiva sobre em dezembro de 2003. Mostra um por um todos os metacaracteres e suas funções.
Expressões Regulares - Como "farejar" um texto e aumentar a produtividade Artigo publicado na Revista do Linux #3 Meu primeiro artigo sobre Expressões Regulares, escrito em 2000. É uma introdução ao assunto, explicando o básico e demonstrando com exemplos o uso de quatro metacaracteres: . + * []
Expressões Regulares II - Conhecendo as ferramentas complementares Artigo publicado na Revista do Linux #7 Meu segundo artigo sobre Expressões Regulares, escrito em 2000. É uma continuação do artigo introdutório, agora apresentando conceitos mais avançados como as chaves, o opcional, os grupos e retrovisores. Também conta com uma tabela de exemplos.
Como casar um número IP (regex) Artigo bem antigo (e um pouco confuso) ensinando a montar uma expressão regular para casar um número IP válido.
Grupo no Telegram
Quer trocar uma ideia em português sobre regex? Junte-se a nós no https://telegram.me/ExpressoesRegulares
Lista de discussão
Para conversar com outros amiguinhos que também gostam das expressões, assine a lista sed-br. Lá o papo é em português, sobre Sed e Expressões Regulares.
Links em português
Conceitual
Wikipédia - Expressões Regulares Artigo da Wikipédia sobre as Expressões Regulares, bem completo e cheio de links para estudo.
Expressões Regulares por Guido Socher Artigo de leitura rápida, aconselhável a quem é totalmente leigo no assunto e quer ter uma visão geral.
Expressões regulares, o básico por Giovanni Nunes Excelente tutorial, lotado de exemplos, que ensina passo a passo o básico das expressões, usando o egrep na linha de comando.
Expressões Regulares e Gramáticas Regulares por Prof. Luiz A M Palazzo Abordagem teórico-acadêmica sobre Expressões Regulares e autômatos.
Expressões Regulares e Linguagens Regulares por Profa. Rosália Rodrigues Abordagem teórico-acadêmica sobre Expressões Regulares e autômatos. Documento bem completo e explicativo, de 31 páginas.
Expressões Regulares - Apresentação de Slides por Isidro Vila Verde Uma apresentação com 10 slides sobre Expressões Regulares, com muita ênfase em exemplos, sendo bem didático.
Aritmética com Regexp por Ricardo Bittencourt Que tal brincar de fazer contas de + - / * com regex? Pior que dá :)
O que há de errado com expressões regulares? por Juan Lopes Palestra que demonstra falhas de segurança nas implementações modernas de expressões regulares. Acompanhe os slides e o vídeo.
Programação
Usando Expressões Regulares na Linguagem C por Thobias Salazar Trevisan Um excelente tutorial do Thobias, explicando em detalhes com usar as Expressões Regulares em C, com vários exemplos de código coloridos.
Expressões Regulares em C - Linux Gazette traduzido por Fabio Utzig Artigo traduzido do Linux Gazette que explora a biblioteca de Expressões Regulares fornecida com a GNU libc.
Perl - Expressões Regulares por Ednardo Lobo Artigo que ensina e demonstra através de exemplos como utilizar as expressões em Perl.
Expressões Regulares com Java por Lucas de Castro Tutorial com introdução às expressões e bastante exemplos da classe String e do pacote java.util.regex.
APIs de Expressões Regulares para Java por LazyDog Um comparativo explicando as características das sete (7!!!) APIs de Expressões Regulares disponíveis para programadores Java.
PHP - Validação E Exibição De Ceps por Klaus Roberto de Paiva Um tutorial de como usar as funções de Expressões Regulares no PHP, focado na validação de CEP.
Expressões Regulares no PHP Portal para as funções que lidam com Expressões Regulares na linguagem PHP.
Validação de formulários HTML com JavaScript por Márcio d'Ávila Documento com exemplos de validação de formulários na linguagem JavaScript, utilizando Expressões Regulares. Muito bem escrito, explicando em detalhes as expressões utilizadas.
Expressões Regulares em JavaScript por Fellipe Partindo um caso específico de validação de código alfanumérico, apresenta as Expressões Regulares e mostra como implementar o código em JavaScript. O artigo está bem fácil de entender, recomendado para novatos no assunto.
Editores de Texto
Expressões Regulares - Apêndice do editor Kate traduzido por Lisiane Sztoltz Documentação detalhada sobre Expressões Regulares, apresentando o conceito e os metacaracteres. É o apêndice B da documentação do editor Kate, do KDE.
Uso de expressões regulares no emacs por Jorge Kinoshita Documento bem rápido, que ensina como usar Expressões Regulares no editor de textos Emacs.
Banco de dados
Expressões regulares em bancos de dados SQL Artigo que explica como usar as expressões nos principais bancos de dados: Oracle, PostgreSQL, MySQL, MariaDB e SQLite.
Sintaxe de Expressões Regulares do MySQL O banco de dados MySQL tem suporte a Expressões Regulares em suas consultas trazendo o poder dos metacaracteres ao armazenamento massivo. Esta página descreve como usá-las.
Expressões Regulares no PostgreSQL O banco de dados PostgreSQL também possui suporte a Expressões Regulares. Essa página detalha como utilizá-las.
Outros
Testador de Expressão Regular por João Lyma Testador online de expressões regulares. Digite os textos de exemplo, digite a ER e o site dirá se casou ou não. É um grep :)
Curso de Shell - Grep e Expressões Regulares por Alex Borro Aula V do curso de Shell, que mostra como usar Expressões Regulares com o aplicativo UNIX grep.
Desaparecidos
Estes links um dia existiram, mas agora sumiram da Internet. Se você é o autor de um deles, ou sabe onde está a sua nova localização, me avise! Meus contatos estão lá no rodapé desta página. Obrigado.
Trabalho de FMA 215 - Expressões Regulares por Sergio Scarano Jr
Documentação sobre Expressões Regulares em Perl por Iúri Gomes Diniz
Tutorial de Expressões Regulares em Perl por Aldeia NumaBoa
Exemplos de expressões regulares em Perl por Linguateca
Expressões Regulares em Java - java.util.regex por Paulo Silveira
Introdução a Expressões Regulares com Java por Tadeu R. A. Santos
PHP - Utilizando Regex para verificação de campos de formulário por Erika Focke
Expressões regulares em PHP por Roberto Bertó
JavaScript - Expressões Regulares por Manoel M. Alves S. Jr
Testadores online
Regex101 ★ Atualiza enquanto digita, destaca texto casado, mostra o conteúdo dos grupos, faz substituição de textos, referência rápida, sintaxes JavaScript, Python e Perl.
RegexPal ★ Atualiza enquanto digita, destaca texto casado, referência rápida, sintaxe JavaScript.
Debuggex ★ Cria um gráfico de sua expressão regular. Bom para entender como sua expressão é interpretada pelo computador. Sintaxe JavaScript, Python e PCRE.
Testador de Expressões Regulares ★ Interface em português, atualiza enquanto digita, mostra se casou ou não usando cores, sintaxe JavaScript.
Rubular ★ Atualiza enquanto digita, destaca texto casado, referência rápida, sintaxe Ruby.
RegExr Atualiza enquanto digita, destaca texto casado, referência rápida, precisa do Flash Player 9, sintaxe ActionScript.
Regex Powertoy ★ Atualiza enquanto digita, destaca texto casado, referência rápida, sintaxe Perl e Java.
regex ★ Atualiza enquanto digita, destaca texto casado, referência rápida, mostra código pronto da linguagem, sintaxe JavaScript, Perl, Python e PHP.
HiFi RegExp Tool ★ Atualiza enquanto digita, destaca texto casado, referência rápida, exemplo de código em JavaScript, sintaxe JavaScript.
JRX Atualiza enquanto digita, destaca texto casado, referência rápida, sintaxe JavaScript.
Nregex Atualiza enquanto digita, destaca texto casado, referência rápida, sintaxe C#.NET.
Regex Mate Atualiza com botão (estilo console), sintaxe JavaScript.
My Regex Tester Destaca texto casado, explica a expressão, otimiza a expressão, mostra código pronto da linguagem, sintaxe JavaScript, Java, VB.NET, C#.NET, PHP e ASP.
Regexper ★ Cria diagramas que descrevem o funcionamento de uma expressão regular.
Regular Expression Generator ★ Gerador de Expressões Regulares. Você digita o texto que quer casar e ele gera um programa pronto para extrair este texto, em várias linguagens, entre elas Python, Perl, PHP, Ruby, Java e javaScript.
Regular Expression Analyzer ★ Analisador de expressões, que gera uma árvore de sua estrutura, ficando fácil entendê-la. Sintaxe Java, JavaScript e Perl.
reAnimator Cria um gráfico (autômatos finitos) de sua expressão regular. Bom para entender como sua expressão é interpretada pelo computador.
Regexplained Fontes gigantescas, design estiloso. Bom para testes rápidos com strings pequenas.
RegexOne ★ Tutorial com exemplos interativos que a cada lição vai te ensinando um pouco sobre as expressões.
Documentação oficial
- .NET Framework
- ActionScript
- Apache HTTP Server
- AWK
- Bash Shell
- ColdFusion
- Google Analytics
- Google Code Search
- Grep
- Java
- JavaScript
- Microsoft Exchange Server
- MySQL
- OpenOffice.org
- Oracle Database
- Perl
- PHP (PCRE)
- PHP (POSIX)
- PostgreSQL
- Python
- Ruby
- Tcl
- Windows PowerShell
- Yahoo! Pipes
Mais informações (inglês)
Wikipedia: Regular Expression A página sobre as expressões na Wikipedia está bem completa, com história, detalhes técnicos e vários links para mais informações. É um ótimo ponto inicial de pesquisa sobre o assunto.
RegexOne Interactive Tutorial Um tutorial interativo que ensina deixa que o aluno pratique ao final de cada lição.
Learn regular expressions in about 55 minutes Excelente tutorial que segue progressivamente, explicando de maneira bem concisa os conceitos. Bom para quem já usa regex, mas de maneira bem superficial, sem entender direito como funciona.
Regular-Expressions.info Site dedicado exclusivamente a regrex. É feio, esquisito, lotado de anúncios. Mas o conteúdo vale a pena. Saia clicando nos links dele e se perca em dezenas de tutoriais e artigos que explicam vários conceitos das expressões, e como usá-las em diferentes linguagens e ferramentas.
RexEgg Outro site dedicado a regex. Este é mais moderninho e tenta ser engraçadão. Acho ele meio bagunçado demais, mas tem muitas dicas preciosas se garimpar.
Mastering Regular Expressions "A Bíblia" de Expressões Regulares, o livro definitivo. Conteúdo abrangente e detalhado, info bem fundo no conceito e implementação. Leitura altamente recomendada para aqueles que querem se tornar gurus nas expressões.
Beginning Regular Expressions Livro novo lançado em 2005 que pretende ser menos focado em UNIX/Perl do que "A Bíblia". O interessante é que ele usa o OpenOffice para testar as expressões, sendo mais amigável ao leitor.
Rosetta Code — Regular expressions Para programadores, esta página é uma coletânea de códigos em várias linguagens, mostrando como casar e substituir um texto.
Regular Expression Library Centenas de Expressões Regulares prontas para usar, enviadas por colaboradores. Tem explicação das ER, porcentagem de acerto e testes. Tudo uma ferramenta de busca para encontrar as expressões. Vale a visita!
The Regex Coach Programa que auxilia na criação e testes de Expressões Regulares. Para Linux, BSD e Windows.
The Regulator Programa que auxilia na criação e testes de Expressões Regulares. Somente para Windows.
kregexpeditor Programa que auxilia na criação de Expressões Regulares. Faz parte do KDE, no Linux.
Kodos Programa gráfico em Python. Rápido e leve, mesmo para buscas e substituições em textos extensos, além de ter um dicionário para consultas rápidas.
Avançado
The Stack Overflow Regular Expressions FAQ FAQ com trocentos links para artigos explicativos (e às vezes densos) sobre o assunto. Se você começar no sábado, ainda vai estar lendo no domingo à noite… Então prepare-se para uma grande viagem. Não estou dizeno que vai ser fácil ;)
How Regexes Work Texto denso e técnico que ensina a implementar um parser de Expressões Regulares. Leia sob sua conta e risco ;)
Implementing Regular Expressions Série de quatro artigos explode-cabeça, altamente acadêmicos, para aqueles meganerds que querem realmente mergulhar no assunto e aprender detalhes de como implementar um motor de regex, diferenças entre tipos de motores, implementações históricas e tudo mais. Reserve HORAS de sua vida, você será dragado, sem chance de escapar. Escritos por Russ Cox.
The true power of regular expressions Para os acadêmicos de plantão: hierarquia de Chomsky para os tipos de linguagens, e a tentativa de usar regex nelas. Artigo denso, porém muito bem escrito e explicado.
Como casar um endereço de email Parece fácil, mas fazer uma regex para casar endereços de email não é uma tarefa trivial. O que é considerado um email "válido", varia, pois o padrão (RFC 5322) aceita vários formatos não utilizados normalmente, então você é quem tem que decidir quais formatos tua regex suportará. Este artigo explica sobre este dilema e dá a dica mais acertada: faça uma regex simples e mande um email de confirmação para validá-lo.
Regular expression denial of service (ReDoS) Você sabia que há algumas expressões que são meticulosamente preparadas para ter seu processamento bem complexo e demorado, e podem ser usadas para fazer Denial Of Service em servidores?
Catastrophic Backtracking Relacionado com o item anterior, aqui está uma explicação de como determinadas expressões podem ser muito complexas para processar devido ao funcionamento dos motores modernos, com backtracking.
Divirta-se!
Nerdson/Hacktoon
Aproveite para visitar o site do Nerdson e ler o artigo introdutório que acompanha a tirinha original. É de fácil entendimento e mostra vários exemplos de uso das Expressões Regulares.
xkcd
Autor desconhecido
Regex-cruzadas
Até onde sei, essa ideia de fazer palavras cruzadas com regex apareceu primeiro no MIT Mystery Hunt de 2013. Era um arquivo PDF, bom pra imprimir e rabiscar, mas bem chato de preencher no computador. Na época, essa foi minha solução pra ele:
Melhor mesmo é usar a versão JavaScript, que é bem mais prática de preencher e sinaliza com cores quando você acerta uma fileira. Resolvi me divertir com ela em maio de 2021 e dessa vez foi mais rápido, levei 1h30:
Mas não precisa comecar por esse, que é muito grande e complicado. Tem um site inteiramente dedicado a gerar palavras cruzadas com regex, e você pode escolher a dificuldade: http://regexcrossword.com
E já que estamos aqui, que tal uma explicação de como fazer um programa que resolve estes quebras-cabeças?
Outros
You can't parse (X)HTML with regex Resposta muito criativa (e trabalhosa!) sobre a velha pergunta de fazer parsing de HTML com regex.
Origem da frase “Now you have two problems” Você já deve ter visto essa frase por aí, que diz: Algumas pessoas, quando encontram um problema, pensam “já sei, vou usar expressões regulares”. Agora elas têm dois problemas. O Jeffrey Friedl rastreou a origem dessa citação e fez um post a respeito. Nos comentários, aparecem alguns famosos, inclusive o Jamie Zawinski (jwz), responsável pela citação original.