Skip to content

Archives

  • 2022 január
  • 2021 december
  • 2021 november
  • 2021 október
  • 2021 szeptember

Categories

  • Nincs kategória
Trend RepositoryArticles and guides
Articles

3 fantasztikus mód a Ruby Gsub módszer használatára

On október 4, 2021 by admin

Beszéljünk a Ruby gsub módszeréről.

Először is, szükséged lesz egy stringre, hogy játszhass ezzel a módszerrel.

Miért?

Mert a gsub-t egy karakterláncon használjuk, hogy annak részeit helyettesítsük.

Tény:

A “sub” a “gsub”-ban a “substitute”-t jelenti, a “g” pedig a “global”-t.

Megvan a te stringed?

Jó.

Ha nem, akkor kölcsönkérheted az enyémet.

Itt van:

str = "white chocolate"

Tegyük fel, hogy a “white” szót “dark”-ra akarjuk cserélni.

Íme, hogyan:

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

Ez azt jelenti:

A str karakterláncot megadva parancsolja meg, hogy az első szó (white) MINDEN előfordulását helyettesítse a második szóval (dark).

Ez azt jelenti, hogy sokkal jobb csokoládét ehetünk.

Várjunk csak, ez csak egy karakterlánc.

Azt nem ehetjük meg!

Mindegy…

A Ruby gsub módszere sokkal többre képes az egyszerű helyettesítésnél.

Lássunk néhány példát.

  • Minták helyettesítése szabályos kifejezéssel
  • Továbbfejlesztett gsub blokkokkal
  • Második kifejezés helyettesítése egy hash segítségével
  • Összefoglaló

Minták helyettesítése szabályos kifejezéssel

Egyetlen szó helyettesítése jó.

De mi lenne, ha egy mintát is helyettesíthetnénk?

Mint például:

Egy évszámot, egy e-mail címet, egy telefonszámot stb.

Megtehetjük!

Itt egy példa:

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

Az első argumentum egy reguláris kifejezés, és ez túl sok ahhoz, hogy itt leírjuk.

De ez egy mintaillesztő nyelv.

Ez esetben a \d számokat keres, például az “1”-t az “a1”-ben.

Ezt is megteheted:

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

Az eredmény:

"1a"

Megváltoztattuk a sorrendet!

Ez a “capture groups” nevű funkció segítségével működik.

A csoportokat úgy használhatjuk, hogy az első csoporthoz, a második csoporthoz, stb.

A csoportokat zárójelekkel hozzuk létre.

Továbbfejlesztett gsub blokkokkal

A dolgok akkor válnak igazán érdekessé, amikor elkezdjük használni a gsub-ot egy blokkal.

Miért?

Mert egy blokkon belül logikával eldönthetjük, hogyan helyettesítsünk valamit.

Ahelyett, hogy statikus értéket használnánk.

Például:

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

Az állatot a \w+-vel találjuk meg, ami “egy vagy több alfanumerikus karaktert” jelent.

Ezután:

  • Ha “kutya”, akkor “macskával”
  • Ha a szó bármi más, akkor “kutyával”

Ez a fajta logika nem lehetséges statikus értékkel, a gsub 2. paraméterével.

Második kifejezés helyettesítése egy hash segítségével

Ha van egy lista a helyettesítésekről, akkor használhatunk egy hash-t.

Mint például ez:

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

Ez úgy működik, mint egy fordítási szótár, ahol a kulcsokat az értékeikkel helyettesítjük.

Itt egy példa:

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

Az eredmény:

"bluebluebluegreenred"

Vigyázz, hogy az 1. argumentumod megfeleljen a kulcsoknak.

Ez esetben a \w egyes karakterekre illeszkedik, tehát a “B” betűre fog illeszkedni, majd “blue”-ra fogja helyettesíteni.

Összefoglaló

Megtanultad a gsub metódust a Ruby-ban! Ez egy hatékony módszer, amely lehetővé teszi a karakterek cseréjét, vagy helyettesítését egy karakterlánc belsejében.

Ez többféleképpen is használható:

  • Az érvénytelen karakterek eltávolítása (a 2. argumentum üres karakterlánccá alakításával)
  • A helyőrző & rövidítések helyettesítése a teljes értékükkel
  • Minták &logika használata a karakterlánc megváltoztatására

Most rajtad a sor, hogy gyakorolj ezzel a módszerrel, hogy az új ismereteid megragadjanak.

Köszönjük az olvasást 🙂

Vélemény, hozzászólás? Kilépés a válaszból

Az e-mail-címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük

Archívum

  • 2022 január
  • 2021 december
  • 2021 november
  • 2021 október
  • 2021 szeptember

Meta

  • Bejelentkezés
  • Bejegyzések hírcsatorna
  • Hozzászólások hírcsatorna
  • WordPress Magyarország
  • 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