0Pricing
Ruby Academy · Aula

Literais de expressões regulares

Fundamentos de padrões.

Literais de expressões regulares é uma aula grátis de Ruby Academy no CoddyKit. Esta é a aula 1 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Ruby Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Ruby Academy inclui 4 aulas no total.

O que é uma expressão regular?

Uma expressão regular é um padrão usado para localizar textos. No Ruby, uma expressão regular é um objeto de primeira classe da classe Regexp.

Você usa expressões regulares para pesquisar, validar e extrair partes de cadeias de caracteres.

  • Localizar uma palavra, um dígito ou um símbolo
  • Validar endereços de e-mail e números de telefone
  • Extrair partes de textos desorganizados
pattern = /hello/
puts pattern.class
puts(pattern.match?('hello world'))

Literais de expressões regulares com barras

A forma mais comum de escrever uma expressão regular no Ruby é entre duas barras inclinadas: /pattern/.

Isso é chamado de literal de expressão regular. Tudo o que está entre as barras é o padrão.

ruby = /ruby/
puts ruby.class
puts(ruby.match?('I love ruby'))
puts(ruby.match?('I love python'))

O operador de correspondência =~

O operador =~ testa uma cadeia de caracteres em relação a uma expressão regular. Ele retorna o índice do primeiro match ou nil quando não há correspondência.

puts('hello world' =~ /world/)
puts(('hello world' =~ /xyz/).inspect)

Verificação booleana com match?

Quando você precisa apenas de uma resposta sim/não, use match?. Ele retorna true ou false e é mais rápido porque não cria um objeto MatchData.

puts(/\d/.match?('abc123'))
puts(/\d/.match?('abcdef'))

Classes de caracteres

Uma classe de caracteres entre colchetes corresponde a qualquer caractere de um conjunto.

  • [abc] corresponde a a, b ou c
  • [a-z] corresponde a qualquer letra minúscula
  • [0-9] corresponde a qualquer dígito
puts(/[aeiou]/.match?('sky'))
puts(/[aeiou]/.match?('tree'))
puts(/[0-9]/.match?('room 7'))

Classes abreviadas

O Ruby oferece escapes abreviados para classes de caracteres comuns:

  • \d um dígito, \D um caractere que não é dígito
  • \w um caractere de palavra (letras, dígitos e sublinhado)
  • \s espaço em branco, \S caractere que não é espaço em branco
puts(/\d\d/.match?('age 42'))
puts(/\w+/.match?('hello_99'))
puts(/\s/.match?('no_space'))

O ponto e os quantificadores

O ponto . corresponde a qualquer caractere individual, exceto uma quebra de linha. Quantificadores controlam a repetição:

  • * zero ou mais vezes
  • + uma ou mais vezes
  • ? zero ou uma vez
  • {2,4} entre 2 e 4 vezes
puts(/ab+c/.match?('abbbc'))
puts(/colou?r/.match?('color'))
puts(/\d{3}/.match?('id 451'))

Alternância com a barra vertical

A barra vertical | significa OR. O padrão cat|dog corresponde a uma das duas palavras.

Use parênteses para agrupar uma alternância dentro de um padrão maior.

pet = /cat|dog/
puts(pet.match?('I have a dog'))
puts(pet.match?('I have a fish'))
puts(/^(yes|no)$/.match?('yes'))

Sinalizador que ignora maiúsculas e minúsculas

Adicione o sinalizador i depois da barra de fechamento para tornar a correspondência indiferente a maiúsculas e minúsculas.

Outros sinalizadores úteis incluem m (o ponto corresponde a uma quebra de linha) e x (modo estendido, que ignora espaços em branco).

puts(/ruby/i.match?('I love RUBY'))
puts(/ruby/.match?('I love RUBY'))

Criando expressões regulares a partir de strings

Você pode criar uma expressão regular em tempo de execução com Regexp.new. Use Regexp.escape para incluir com segurança uma entrada do usuário que possa conter caracteres especiais.

word = 'price'
pattern = Regexp.new(word)
puts(pattern.match?('the price is high'))
puts(Regexp.escape('a.b*c'))

Prévia das âncoras

Âncoras correspondem a posições, não a caracteres:

  • ^ início de uma linha
  • $ fim de uma linha
  • \A início da cadeia de caracteres
  • \z fim da cadeia de caracteres

Você estudará esses recursos em profundidade mais adiante.

puts(/^Hello/.match?('Hello there'))
puts(/world$/.match?('hello world'))

Verificação rápida

O que o operador =~ retorna quando uma expressão regular corresponde a uma cadeia de caracteres?

Recapitulação: literais de expressões regulares

Você aprendeu os fundamentos das expressões regulares do Ruby:

  • Literais de expressões regulares são escritos entre /slashes/
  • =~ retorna um índice, e match? retorna true/false
  • Classes de caracteres [ ] e abreviações \d \w \s
  • Quantificadores * + ? {n,m} e alternância |
  • O sinalizador i torna a correspondência indiferente a maiúsculas e minúsculas

Em seguida, você capturará as partes correspondentes.

puts(/\w+@\w+\.\w+/i.match?('USER@Mail.com'))

Perguntas Frequentes

A aula “Literais de expressões regulares” é grátis?

Sim — o texto completo de “Literais de expressões regulares” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Ruby Academy, atualize para CoddyKit PRO. O curso de Ruby Academy inclui 4 aulas no total.

O que vou aprender em “Literais de expressões regulares”?

Fundamentos de padrões. Você pratica Ruby Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar Ruby Academy?

Nenhuma experiência prévia é necessária. Ruby Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 1 de 4.

Quanto tempo leva a aula “Literais de expressões regulares”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de Ruby Academy?

Sim. Cada aula de Ruby Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Literais de expressões regulares
  2. Correspondência e captura
  3. Substituição
  4. Grupos nomeados e âncoras
← Voltar para Ruby Academy