Expressões regulares em Ruby

Expressões regulares, também conhecidas como regex, são padrões usados ​​para pesquisar, modificar e manipular texto em Ruby. Eles são uma ferramenta poderosa para trabalhar com dados textuais de forma eficiente e precisa.

Criando expressões regulares: Link to heading

  • São definidos entre duas barras (/).
  • Podem conter uma combinação de caracteres especiais e literais.
  • Os caracteres especiais têm um significado predefinido na expressão regular.

Caracteres básicos Link to heading

Expressão significado
. (Ponto): Corresponde a qualquer caractere único (exceto nova linha).
[] (Colchetes): Faixa de caracteres. Exemplo: [az] corresponde a qualquer letra minúscula de a a z.
\w (Letra ou número): Corresponde letras, números e sublinhado (_).
\W (Não é letra nem número): Corresponde a qualquer caractere que não seja letra, número ou sublinhado.
\s (Em branco): Corresponde a espaços, tabulações, retornos de carro e quebras de linha.
\S (Não-espaço em branco): Corresponde a qualquer caractere que não seja um espaço em branco.
\d (Dígito): Corresponde a qualquer dígito de 0 a 9.
\D (Sem dígito): Corresponde a qualquer caractere que não seja um dígito de 0 a 9.

Metacaracteres especiais Link to heading

Expressão significado
^ (Início): Corresponde ao início da string.
$ (End): Corresponde ao final da string.
\b (Borda da palavra): Corresponde ao início ou ao final de uma palavra.
* (Zero ou mais): Repete o caractere que o precede zero ou mais vezes.
+ (Um ou mais): Repete o caractere que o precede uma ou mais vezes.
? (Zero ou um): Repete o caractere que o precede zero ou uma vez.
| (Alternativa): Corresponde a qualquer uma das expressões que a precedem ou seguem.
() (Grupo): Agrupa uma expressão para tratá-la como uma única unidade.
{m,n} (Repetição específica): Repete o caractere ou grupo que o precede no mínimo m vezes e no máximo n vezes.

Exemplo: Link to heading

is_gmail_regex = /\w+@gmail.com/

Correspondência de padrões: Link to heading

  • O método match pode ser usado para verificar se uma string corresponde a uma expressão regular.
  • O método match retorna um objeto MatchData se houver uma correspondência ou nil se não houver.

Exemplo: Link to heading

"john@gmail.com".match(is_gmail_regex) # => <MatchData "john@gmail.com">
"john@gmail".match(is_gmail_regex) # => nil

Classes de personagens: Link to heading

  • Existem diferentes classes de caracteres para simplificar a escrita de expressões regulares.

Exemplo: Link to heading

numero_regex = /\d+/
"21354".match(numero_regex) # => <MatchData "21354">
"text".match(numero_regex) # => nil

Quantificadores: Link to heading

  • São usados ​​para indicar o número de vezes que um caracter ou padrão deve ser repetido.

Exemplo: Link to heading

# Pesquise uma palavra seguida de um espaço e pesquise uma letra
/\w+ \w/ =~ "Olá mundo" # => 0

# Pesquise uma palavra seguida de dois ou mais espaços e depois uma letra
/\w+ \s+\w/ =~ "Olá  mundo" # => 0

Agrupamento: Link to heading

  • Os parênteses podem ser usados ​​para agrupar partes de uma expressão regular.

Exemplo: Link to heading

# Pesquisa uma data no formato dd/mm/aaaa
/\d{2}\/\d{2}\/\d{4}/ =~ "12/03/2024" # => 0

# Pesquisa uma data no formato dd/mm/aaaa, onde dd e mm podem ter um ou dois dígitos
/\d{1,2}\/\d{1,2}\/\d{4}/ =~ "12/03/2024" # => 0

Operadores lógicos: Link to heading

  • Operadores lógicos podem ser usados ​​para combinar diferentes expressões regulares.

Exemplo: Link to heading

# Pesquisa um endereço de e-mail que pode ser do Gmail ou Hotmail

/(gmail|hotmail)\.com/ =~ "john@gmail.com" # => 0
/(gmail|hotmail)\.com/ =~ "john@hotmail.com" # => 0

Em resumo, expressões regulares são uma ferramenta poderosa para trabalhar com texto em Ruby. Sua flexibilidade e expressividade os tornam parte fundamental da linguagem para tarefas como busca e validação de dados, extração de informações e transformação de textos.

Continue aprendendo sobre expressões regulares para aproveitar ao máximo seu potencial em seus programas!

Dicas adicionais: Link to heading

  • Você pode usar a ferramenta rubular para testar e depurar suas expressões regulares.
  • Você pode usar a biblioteca rexml para trabalhar com XML.
  • Você pode usar a biblioteca nokogiri para trabalhar com HTML.

Continue experimentando expressões regulares para criar programas mais robustos e versáteis!

Aqui estão alguns exemplos adicionais de como expressões regulares podem ser usadas: Link to heading

  • Validar a entrada de um usuário
  • Extraia informações de uma página da web
  • Formatar texto
  • Encontre e substitua texto
  • Gerar código
  • Traduzir idiomas
  • Analisar dados

As possibilidades são infinitas!

<< Intervalos em Ruby (Range) Procs e Lambdas em Ruby >>