Skip to content

Archives

  • Janeiro 2022
  • Dezembro 2021
  • Novembro 2021
  • Outubro 2021
  • Setembro 2021

Categories

  • Sem categorias
Trend RepositoryArticles and guides
Articles

3 Formas Fantásticas de Utilizar o Método Gsub do Ruby

On Outubro 4, 2021 by admin

Vamos falar sobre o método do Ruby gsub> método.

Primeiro, vai precisar de uma string para jogar com este método.

Porquê?

Porque usa gsub numa string para substituir partes dela.

De facto:

O “sub” em “gsub” significa “substituto”, e o “g” significa “global”.

Tenho a sua string?

Bom.

Se não, pode pedir emprestado o meu.

Aqui está:

str = "white chocolate"

Vamos dizer que queremos substituir “white” por “dark”.

Aqui está como:

str.gsub("white", "dark")

É dizer:

Dando a string str, comando para substituir TODAS as ocorrências da primeira palavra (white) pela segunda palavra (dark).

O que significa que podemos comer chocolate muito melhor.

Oh espera, é apenas uma string.

Não podemos comer isso!

Anyway…

O método de Ruby’s gsub pode fazer muito mais do que uma simples substituição.

Vejamos alguns exemplos.

  • Substituir padrões com uma expressão regular
  • Advanced Gsub With Blocks
  • Substituir múltiplos termos por um hash
  • Sumário

Substituir padrões com uma expressão regular

Substituir uma única palavra está bem.

Mas e se pudesse substituir um padrão?

Tal como:

Um ano, um endereço de e-mail, um número de telefone, etc.

Você pode!

Aqui está um exemplo:

"a1".gsub(/\d/, "2")# "a2"

O primeiro argumento é uma expressão regular, e é demasiado para cobrir aqui.

Mas é uma linguagem de correspondência de padrões.

Neste caso, \d procura números, como o “1” em “a1”.

>

Também pode fazer isto:

"a1".gsub(/(\w)(\d)/, '')

Que resulta em:

"1a"

Trocamos a ordem!

Isto funciona usando uma funcionalidade chamada “grupos de captura”.

Podemos usar os grupos como para o primeiro grupo, para o segundo grupo, etc.

Grupos são criados com parênteses.

Advanced Gsub With Blocks

As coisas ficam realmente interessantes quando você começa a usar o gsub com um bloco.

Porquê?

Porque dentro de um bloco você pode usar a lógica para decidir como substituir algo.

Em vez de usar um valor estático.

Por exemplo:

"dog".gsub(/\w+/) { |animal| animal == "dog" ? "cat" : "dog" }

Encontramos o animal com \w+, que significa “um ou mais caracteres alfanuméricos”.

Então:

  • Se for um “cão”, substituímos por “gato”
  • Se a palavra for qualquer outra coisa, substituímos por “cão”

Este tipo de lógica não é possível com um valor estático, o 2º parâmetro do gsub.

Substituir múltiplos termos por um hash

Se você tiver uma lista de substituições para fazer você pode usar um hash.

Tal como este:

colors = { "B" => "blue", "G" => "green", "R" => "red"}

Este funciona como um dicionário de tradução, onde as chaves serão substituídas pelos seus valores.

Aqui está um exemplo:

"BBBGR".gsub(/\w/, colors)

O que resulta em:

"bluebluebluegreenred"

Certifique-se de que o seu 1º argumento irá corresponder às chaves.

Neste caso, \w corresponde a caracteres individuais, por isso irá corresponder a “B” e depois substitui-lo por “azul”.

Sumário

Você aprendeu sobre o método gsub em Ruby! É um método poderoso que lhe permite substituir, ou substituir caracteres dentro de uma string.

Tem múltiplos usos:

  • Remover caracteres inválidos (fazendo do 2º argumento uma string vazia)
  • Substituir placeholders &As siglas pelos seus valores completos
  • Usar padrões &Lógica para alterar uma string

Agora é a sua vez de praticar com este método para que possa fazer o seu novo conhecimento colar.

>

Pelidos de leitura 🙂

Deixe uma resposta Cancelar resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *

Arquivo

  • Janeiro 2022
  • Dezembro 2021
  • Novembro 2021
  • Outubro 2021
  • Setembro 2021

Meta

  • Iniciar sessão
  • Feed de entradas
  • Feed de comentários
  • WordPress.org
  • DeutschDeutsch
  • NederlandsNederlands
  • SvenskaSvenska
  • DanskDansk
  • EspañolEspañol
  • FrançaisFrançais
  • PortuguêsPortuguês
  • ItalianoItaliano
  • RomânăRomână
  • PolskiPolski
  • ČeštinaČeština
  • MagyarMagyar
  • SuomiSuomi
  • 日本語日本語

Copyright Trend Repository 2022 | Theme by ThemeinProgress | Proudly powered by WordPress