Skip to content

Archives

  • januari 2022
  • december 2021
  • november 2021
  • oktober 2021
  • september 2021

Categories

  • Geen categorieën
Trend RepositoryArticles and guides
Articles

3 Awesome Ways To Use Ruby’s Gsub Method

On oktober 4, 2021 by admin

Laten we het eens hebben over Ruby’s gsub method.

Vooreerst heb je een string nodig om met deze methode te spelen.

Waarom?

Omdat je gsub op een string gebruikt om delen ervan te vervangen.

In feite:

De “sub” in “gsub” staat voor “substitute”, en de “g” staat voor “global”.

Heb je jouw string?

Goed.

Zo niet, dan kun je de mijne lenen.

Hier is het:

str = "white chocolate"

Laten we zeggen dat we “wit” willen vervangen door “donker”.

Hier staat het:

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

Dit betekent:

Gegeven aan de string str, geef het commando om ALLE occurrences van het eerste woord (white) te vervangen door het tweede woord (dark).

Wat betekent dat we veel betere chocolade kunnen eten.

Oh wacht, het is maar een string.

Dat kunnen we niet eten!

Hoe dan ook…

Ruby’s gsub methode kan veel meer dan simpele substitutie.

Laten we een paar voorbeelden zien.

  • Vervang patronen met een Reguliere Expressie
  • Gevorderde Gsub met blokken
  • Vervang meerdere termen met een hash
  • Samenvatting

Vervang patronen met een Reguliere Expressie

Het vervangen van een enkel woord is prima.

Maar wat als je een patroon zou kunnen vervangen?

Zoals:

Een jaartal, een emailadres, een telefoonnummer, etc.

Dat kan!

Hier is een voorbeeld:

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

Het eerste argument is een reguliere expressie, en het is te veel om hier te behandelen.

Maar het is een patroon-matching taal.

In dit geval, \d zoekt naar getallen, zoals de “1” in “a1”.

U kunt dit ook doen:

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

Wat resulteert in:

"1a"

We hebben de volgorde verwisseld!

Dit werkt door gebruik te maken van een functie genaamd “capture groups”.

We kunnen de groepen gebruiken als voor de eerste groep, voor de tweede groep, enz.

Groepen worden gemaakt met haakjes.

Gevorderde Gsub met blokken

Het wordt pas echt interessant als je gsub met een blok gaat gebruiken.

Waarom?

Omdat je binnen een blok logica kunt gebruiken om te beslissen hoe je iets vervangt.

In plaats van een statische waarde te gebruiken.

Voorbeeld:

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

We vinden het dier met \w+, wat betekent “een of meer alfanumerieke tekens”.

Dan:

  • Als het een “hond” is, vervangen we het door “kat”
  • Als het een ander woord is, vervangen we het door “hond”

Dit soort logica is niet mogelijk met een statische waarde, gsub’s 2e parameter.

Vervang meerdere termen met een hash

Als je een lijst met vervangingen moet maken, kun je een hash gebruiken.

Zoals deze:

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

Dit werkt als een vertaalwoordenboek, waar de sleutels worden vervangen door hun waarden.

Hier is een voorbeeld:

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

Wat resulteert in:

"bluebluebluegreenred"

Zorg ervoor dat je 1e argument overeenkomt met de sleutels.

In dit geval komt \w overeen met individuele karakters, dus het zal overeenkomen met “B” en het vervolgens vervangen door “blue”.

Samenvatting

Je hebt geleerd over de gsub methode in Ruby! Het is een krachtige methode waarmee je karakters in een string kunt vervangen, of substitueren.

Het heeft meerdere toepassingen:

  • Vervangen van ongeldige tekens (door van het 2e argument een lege string te maken)
  • Vervangen van placeholders & acroniemen door hun volledige waarden
  • Gebruik van patronen & logica om een string te veranderen

Nu is het jouw beurt om te oefenen met deze methode zodat je je nieuwe kennis kunt laten beklijven.

Bedankt voor het lezen 🙂

Geef een antwoord Antwoord annuleren

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *

Archieven

  • januari 2022
  • december 2021
  • november 2021
  • oktober 2021
  • september 2021

Meta

  • Inloggen
  • Berichten feed
  • Reacties feed
  • 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