Hoppa till innehåll

Archives

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

Categories

  • Inga kategorier
Trend RepositoryArticles and guides
Articles

3 fantastiska sätt att använda Rubys Gsub-metod

On oktober 4, 2021 by admin

Låt oss prata om Rubys gsub-metod.

För det första behöver du en sträng för att använda den här metoden.

Varför?

För att du använder gsub på en sträng för att ersätta delar av den.

Faktiskt sett:

Det ”sub” i ”gsub” står för ”substitute” (ersättning) och ”g” står för ”global”.

Har du din sträng?

Godt.

Om inte kan du låna min.

Här är den:

str = "white chocolate"

Vad sägs om att vi vill ersätta ”white” med ”dark”.

Så här gör vi:

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

Det här säger:

Givet strängen str, beordra den att ersätta ALLA förekomster av det första ordet (white) med det andra ordet (dark).

Det betyder att vi får äta mycket bättre choklad.

Oh vänta, det är bara en sträng.

Vi kan inte äta det där!

Annorlunda…

Rubys gsub-metod kan göra mycket mer än enkel substitution.

Låt oss se några exempel.

  • Replacera mönster med ett reguljärt uttryck
  • Advanced Gsub With Blocks
  • Ersätt flera termer med en hash
  • Sammanfattning

Replacera mönster med ett reguljärt uttryck

Replacera ett enda ord är bra.

Men tänk om du kunde ersätta ett mönster?

Som:

Ett årtal, en e-postadress, ett telefonnummer osv.

Det kan du!

Här är ett exempel:

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

Det första argumentet är ett reguljärt uttryck, och det är för mycket att ta upp här.

Men det är ett mönstermatchningsspråk.

I det här fallet letar \d efter siffror, som ”1” i ”a1”.

Du kan också göra så här:

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

Vilket resulterar i:

"1a"

Vi har bytt ordning!

Detta fungerar med hjälp av en funktion som kallas ”capture groups”.

Vi kan använda grupperna som för den första gruppen, för den andra gruppen osv.

Grupper skapas med parenteser.

Advanced Gsub With Blocks

Det blir riktigt intressant när du börjar använda gsub med ett block.

Varför?

För att du inom ett block kan använda logik för att bestämma hur något ska ersättas.

Istället för att använda ett statiskt värde.

Till exempel:

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

Vi hittar djuret med \w+, vilket betyder ”ett eller flera alfanumeriska tecken”.

Därefter:

  • Om det är en ”hund” ersätter vi det med ”katt”
  • Om ordet är något annat ersätter vi det med ”hund”

Den här typen av logik är inte möjlig med ett statiskt värde, gsubs andra parameter.

Ersätt flera termer med en hash

Om du har en lista med ersättningar att göra kan du använda en hash.

Som den här:

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

Detta fungerar som en översättningsordbok, där nycklarna ersätts med sina värden.

Här är ett exempel:

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

Vilket resulterar i:

"bluebluebluegreenred"

Säkerställ att ditt 1:a argument matchar nycklarna.

I det här fallet matchar \w enskilda tecken, så det kommer att matcha ”B” och sedan ersätta det med ”blue”.

Sammanfattning

Du har lärt dig om metoden gsub i Ruby! Det är en kraftfull metod som låter dig ersätta eller byta ut tecken i en sträng.

Den har flera användningsområden:

  • För att ta bort ogiltiga tecken (genom att göra det andra argumentet till en tom sträng)
  • Ersätt platshållare & akronymer med deras fullständiga värden
  • Användning av mönster & logik för att ändra en sträng

Nu är det din tur att öva på den här metoden så att du kan få dina nya kunskaper att fastna.

Tack för att du läste 🙂

Lämna ett svar Avbryt svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *

Arkiv

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

Meta

  • Logga in
  • Flöde för inlägg
  • Flöde för kommentarer
  • 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
  • 日本語日本語

Upphovsrätt Trend Repository 2022 | Tema av ThemeinProgress | Drivs med WordPress