Expressões Regulares Cookbook
Descrição do livro
Este livro oferece mais de 100 receitas que vão ajudá-lo a manipular dados e textos usando expressões regulares. Todo programador deve entender um pouco de expressões regulares, mas aproveitá-las plenamente não é tão simples assim. Mesmo os usuários mais experientes, muitas vezes, sofrem com baixo desempenho, falsos positivos, falsos negativos ou defeitos imprevisíveis. Expressões Regulares Cookbook oferece orientação detalhada para algumas das tarefas mais comuns envolvendo essa ferramenta, com receitas para C#, Java, JavaScript, Perl, PHP, Python, Ruby e VB.NET.
Com este livro, você:
Entenderá os fundamentos das expressões regulares por meio de um tutorial conciso.
Usará expressões regulares de forma produtiva, em várias linguagens de programação e de script.
Aprenderá como validar e formatar entradas de dados.
Gerenciará palavras, linhas, caracteres especiais e valores numéricos.
Encontrará soluções para uso de expressões regulares em URLs, paths, marcações e intercâmbios de dados.
Estudará as nuances das funcionalidades mais avançadas das expressões regulares.
Entenderá como as APIs, a sintaxe e o comportamento das expressões regulares diferem de linguagem para linguagem.
Escreverá expressões regulares que melhor atendam ás suas necessidades.
Tanto para iniciantes, como para usuários experientes, Expressões Regulares Cookbook ajudará o leitor a aprofundar seus conhecimentos a respeito dessa ferramenta única e insubstituível. Você aprenderá novos e poderosos truques, evitará armadilhas específicas e poupará um tempo precioso com essa enorme e comprovada biblioteca de soluções para os difíceis problemas encontrados no mundo real.
“É um livro bem escrito, cheio de informações. Aprendi uma série de truques lendo apenas o capítulo introdutório”. – Nikolaj Lindberg, linguista computacional da STTS (Speech Technology Services).
“O livro Expressões Regulares Cookbook oferece soluções sofisticadas para problemas imediatos. Em geral, fiquei impressionado com a riqueza de detalhes das receitas”. – Zak Greant, defensor e estrategista do ramo de tecnologia aberta.
Ver menos ▲Sumário
- Prefácio
- Capítulo 1 ■ Introdução às expressões regulares
- Definição de expressões regulares
- Pesquisa e substituição com expressões regulares
- Ferramentas para se trabalhar com expressões regulares
- grep
- Capítulo 2 ■ Habilidades básicas de expressões regulares
- 2.1 Corresponder a um texto literal
- 2.2 Corresponder a caracteres não-imprimíveis
- 2.3 Corresponder a um dentre vários caracteres
- 2.4 Corresponder a qualquer caractere
- 2.5 Corresponder a alguma coisa no começo e/ou final de uma linha
- 2.6 Corresponder a palavras inteiras
- 2.7 Pontos de código, propriedades, blocos e alfabetos Unicode
- 2.8 Corresponder a uma dentre várias alternativas
- 2.9 Agrupar e capturar partes da correspondência
- 2.10 Corresponder novamente a textos previamente correspondidos
- 2.11 Capturar e nomear partes da correspondência
- 2.12 Repetir parte da Regex um certo número de vezes
- 2.13 Escolher entre repetição mínima ou máxima
- 2.14 Eliminar os retrocessos desnecessários
- 2.15 Prevenir repetições descontroladas
- 2.16 Testar uma correspondência sem acrescentá-la à correspondência global
- 2.17 Corresponder a uma de duas alternativas com base em uma condição
- 2.18 Adicionar comentários à expressão regular
- 2.19 Inserir texto literal no texto de substituição
- 2.20 Inserir a correspondência da expressão regular no texto de substituição
- 2.21 Inserir parte da correspondência da expressão regular no texto de substituição
- 2.22 Inserir o contexto de correspondência no texto de substituição
- Capítulo 3 ■ Programando com expressões regulares
- Linguagens de programação e sabores Regex
- 3.1 Expressões regulares literais no código-fonte
- 3.2 Importar a biblioteca de expressões regulares
- 3.3 Criar objetos de expressão regular
- 3.4 Definir opções das expressões regulares
- 3.5 Testar se uma correspondência pode ser encontrada dentro de uma string de assunto
- 3.6 Testar se uma regex corresponde totalmente à string de assunto
- 3.7 Recuperar o texto correspondido
- 3.8 Determinar a posição e o comprimento da correspondência
- 3.9 Recuperar parte do texto correspondido
- 3.10 Recuperar uma lista de todas as correspondências
- 3.11 Iterar todas as correspondências
- 3.12 Validar correspondências no código procedural
- 3.13 Encontrar uma correspondência dentro de outra
- 3.14 Substituir todas as correspondências
- 3.15 Substituir correspondências, reutilizando partes da correspondência
- 3.16 Substituir correspondências com substitutos gerados em código
- 3.17 Substituir todas as correspondências dentro das correspondências de outra expressão regular
- 3.19 Dividir uma string
- 3.20 Dividir uma string, mantendo as correspondências da expressão regular
- 3.21 Pesquisar linha por linha
- Capítulo 4 ■ Validação e formatação
- 4.1 Validar endereços de e-mail
- 4.2 Validar e formatar números de telefone norte-americanos
- 4.3 Validar números de telefone internacionais
- 4.4 Validar formatos de data tradicionais
- 4.5 Validar formatos tradicionais de data com exatidão
- 4.6 Validar formatos de horário tradicionais
- 4.7 Validando datas e horários ISO 8601
- 4.8 Limitar a entrada a caracteres alfanuméricos
- 4.9 Limitar o comprimento do texto
- 4.10 Limitar o número de linhas no texto
- 4.11 Validar respostas afirmativas
- 4.12 Validar números de Previdência Social
- 4.13 Validando ISBNs
- 4.14 Validar códigos postais
- 4.15 Validar códigos postais canadenses
- 4.16 Validar códigos postais do Reino Unido
- 4.17 Encontrar endereços com caixas postais
- 4.18 Reformatar nomes no formato “Nome Sobrenome” para “Sobrenome, Nome”
- 4.19 Validar números de cartão de crédito
- 4.20 Números VAT europeus
- Capítulo 5 ■ Palavras, linhas e caracteres especiais
- 5.1 Encontrar uma palavra específica
- 5.2 Encontrar uma palavra entre várias
- 5.3 Pesquisar palavras similares
- 5.4 Encontrar todas, exceto uma palavra específica
- 5.5 Localizar qualquer palavra não seguida por uma palavra específica
- 5.6 Localizar qualquer palavra que não seja precedida por uma palavra específica
- 5.7 Encontrar palavras próximas umas das outras
- 5.8 Encontrar palavras repetidas
- 5.9 Remover linhas duplicadas
- 5.10 Corresponder a linhas inteiras que contenham uma determinada palavra
- 5.11 Corresponder a linhas completas que não contenham determinada palavra
- 5.12 Remover espaços em branco iniciais e finais
- 5.13 Substituir espaços em branco repetidos por um único espaço
- 5.14 Escapar metacaracteres de expressão regular
- Capítulo 6 ■ Números
- 6.1 Números inteiros
- 6.2 Números hexadecimais
- 6.3 Números binários
- 6.4 Remover zeros à esquerda
- 6.5 Números dentro de um certo intervalo
- 6.6 Números hexadecimais dentro de um certo intervalo
- 6.7 Números de ponto flutuante
- 6.8 Números com separadores de milhar
- 6.9 Numerais romanos
- Capítulo 7 ■ URLs, paths e endereços de Internet
- 7.1 Validar URLs
- 7.2 Encontrar URLs dentro de um texto completo
- 7.3 Encontrar URLs entre aspas no texto completo
- 7.4 Encontrar URLs entre parênteses no texto completo
- 7.5 Transformar URLs em links
- 7.6 Validar URNs
- 7.7 Validar URLs genéricas
- 7.8 Extrair o protocolo de uma URL
- 7.9 Extrair o usuário de uma URL
- 7.10 Extrair o host de uma URL
- 7.11 Extrair a porta de uma URL
- 7.12 Extrair o caminho de uma URL
- 7.13 Extrair a consulta de uma URL
- 7.14 Extrair o fragmento de uma URL
- 7.15 Validar nomes de domínio
- 7.16 Corresponder a endereços IPv4
- 7.17 Corresponder a endereços IPv6
- 7.18 Validar caminhos do Windows
- 7.19 Dividir caminhos do Windows em suas partes constituintes
- 7.20 Extrair a letra da unidade de um caminho Windows
- 7.21 Extrair o servidor e o compartilhamento de um caminho UNC
- 7.22 Extrair a pasta de um caminho Windows
- 7.23 Extrair o nome do arquivo de um caminho do Windows
- 7.24 Extrair a extensão de arquivo de um caminho Windows
- 7.25 Retirar caracteres inválidos de nomes de arquivos
- Capítulo 8 ■ Marcação e intercâmbio de dados
- 8.1 Encontrar tags no estilo XML
- 8.2 Substituir tags <b> por <strong>
- 8.3 Remover todas as tags de estilo XML, exceto <em> e <strong>
- 8.4 Corresponder a nomes XML
- 8.5 Converter texto simples em HTML adicionando tags <p> e <br>
- 8.6 Encontrar um atributo específico em tags no estilo XML
- 8.7 Adicionar um atributo cellspacing em tags <table> que ainda não o incluam
- 8.8 Remover comentários no estilo XML
- 8.9 Encontrar palavras dentro de comentários no estilo XML
- 8.10 Mudar o delimitador usado em arquivos CSV
- 8.11 Extrair campos CSV de uma coluna específica
- 8.12 Corresponder a cabeçalhos de seção INI
- 8.13 Corresponder a blocos de seção INI
- 8.14 Corresponder a pares nome-valor INI
- Índice remissivo
Sobre os autores
Jan Goyvaerts comanda a Just Great Software, onde projeta e desenvolve alguns dos programas mais conhecidos a respeito de expressões regulares.… Ver perfil completo ▶
Steven Levithan é especialista em expressões regulares em JavaScript, e mantém um blog famoso sobre expressões regulares. … Ver perfil completo ▶
Livros relacionados
Opinião dos leitores
Felipe D
Excelente. Um guia completo que pode ser usado como referência sobre expressões regulares. As seções de validação, formatação e endereços da Internet será muito útil.
Ayr M G
Esse livro veio a somar como o livro anterior que já comprei também da NOVATEC, de Aurélio Marinho Jargas "Expressões Regulares - 5ª Edição". Dessa forma, completa os estudos para manipular dados em várias linguagens. Grande ferramenta e pouco estudada hoje em dia.
Fernando C M
Ótimo livro.
Luiz C V
Com linguagem clara e divertida, o autor descreve e exemplifica o uso das expressões regulares para qualquer um entender. Mantém o nível de qualidade das suas outras obras.





