Ruby:
Usando expressões regulares
Como fazer:
Correspondência Básica
Para combinar uma string com um padrão simples, você pode usar o método match
. Abaixo, estamos verificando se a palavra “Ruby” existe em uma string dada.
if /Ruby/.match("Olá, Ruby!")
puts "Combinação encontrada!"
end
# Saída: Combinação encontrada!
Correspondência de Padrões com Variáveis
Você pode interpolar variáveis em sua regex usando a sintaxe #{}
, tornando seus padrões dinâmicos.
language = "Ruby"
if /#{language}/.match("Programar em Ruby é divertido.")
puts "Falando sobre Ruby!"
end
# Saída: Falando sobre Ruby!
Usando Regex para Substituição
O método gsub
permite substituir toda ocorrência de um padrão por uma string de substituição especificada.
puts "foobarfoo".gsub(/foo/, "bar")
# Saída: barbarbar
Captura
Parênteses em uma regex são usados para capturar partes de uma combinação. O método match
retorna um objeto MatchData
, que você pode usar para acessar as capturas.
match_data = /(\w+): (\d+)/.match("Idade: 30")
puts match_data[1] # Rótulo capturado
puts match_data[2] # Valor capturado
# Saída:
# Idade
# 30
Usando Bibliotecas de Terceiros
Embora a biblioteca padrão do Ruby seja poderosa, às vezes você pode precisar de funcionalidades mais especializadas. Uma gem popular para trabalhar com regex é Oniguruma
, que fornece recursos adicionais de regex além do motor de regex integrado ao Ruby.
Instale-a usando:
gem install oniguruma
Um exemplo de uso poderia ser assim (assumindo que você tenha feito o require de oniguruma
após instalá-la):
# Este é um exemplo mais avançado e pode requerer configuração adicional
require 'oniguruma'
padrão = Oniguruma::ORegexp.new('(\d+)')
dados_da_combinação = padrão.match("O número é 42.")
puts dados_da_combinação[1]
# Saída: 42
Lembre-se, embora poderosas, expressões regulares podem se tornar complexas e difíceis de gerenciar para padrões mais complicados. Vise a legibilidade e considere métodos alternativos se sua regex se tornar muito intrincada.