Skip to content

Archives

  • tammikuu 2022
  • joulukuu 2021
  • marraskuu 2021
  • lokakuu 2021
  • syyskuu 2021

Categories

  • Ei kategorioita
Trend RepositoryArticles and guides
Articles

3 mahtavaa tapaa käyttää Rubyn Gsub-menetelmää

On 4 lokakuun, 2021 by admin

Puhutaanpa Rubyn gsub-menetelmästä.

Aluksi tarvitset merkkijonon, jotta voit leikkiä tällä menetelmällä.

Miksi?

Koska käytät gsub:a merkkijonoon korvataksesi sen osia.

Tosiasiassa:

Sanassa ”gsub” oleva ”sub” tarkoittaa ”substitute”, ja ”g” tarkoittaa ”global”.

Onko sinulla merkkijono?

Hyvä.

Jos ei ole, voit lainata minun merkkijonoani.

Tässä se on:

str = "white chocolate"

Sanotaan, että haluamme korvata ”white” sanalla ”dark”.

Tässä sanotaan:

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

Tässä sanotaan:

Käskekää merkkijonoa str korvaamaan KAIKKI ensimmäisen sanan (white) esiintymät toisella sanalla (dark).

Mikä tarkoittaa, että saamme syödä paljon parempaa suklaata.

Oh odota, se on vain merkkijono.

Emmehän voi syödä sitä!

Jokatapauksessa…

Rubyn gsub-menetelmä voi tehdä paljon muutakin kuin pelkkää korvaamista.

Katsotaanpa muutama esimerkki.

  • Korvaa kuvioita säännöllisellä lausekkeella
  • Advanced Gsub With Blocks
  • Korvaa useita termejä hashilla
  • Yhteenveto

Korvaa kuvioita säännöllisellä lausekkeella

Yksittäisen sanan korvaaminen on hyvä.

Mutta entä jos voisit korvata kuvion?

Kuten:

Vuosi, sähköpostiosoite, puhelinnumero jne.

Voit!

Tässä on esimerkki:

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

Ensimmäinen argumentti on säännöllinen lauseke, ja sitä on liian paljon käsiteltäväksi tässä.

Mutta se on kuvioiden täsmäytyskieli.

Tässä tapauksessa \d etsii numeroita, kuten ”1” sanassa ”a1”.

Voit tehdä myös näin:

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

Jolloin tuloksena on:

"1a"

Vaihdoimme järjestystä!

Tämä toimii käyttämällä ominaisuutta nimeltä ”capture groups”.

Voimme käyttää ryhmiä seuraavasti: ensimmäiselle ryhmälle, toiselle ryhmälle jne.

Ryhmät luodaan sulkujen avulla.

Advanced Gsub With Blocks

Tilanteesta tulee todella mielenkiintoinen, kun alat käyttää gsubia lohkojen kanssa.

Miksi?

Koska lohkon sisällä voit käyttää logiikkaa päättämään, miten jotain korvataan.

Sen sijaan, että käyttäisit staattista arvoa.

Esimerkiksi:

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

Me löydämme eläimen \w+:llä, joka tarkoittaa ”yksi tai useampi aakkosnumeerinen merkki”.

Sitten:

  • Jos se on ”koira”, korvaamme sen sanalla ”kissa”
  • Jos sana on jokin muu, korvaamme sen sanalla ”koira”

Tämmöinen logiikka ei ole mahdollista staattisella arvolla, gsubin 2. parametrilla.

Korvaa useita termejä hashilla

Jos sinulla on lista korvattavista termeistä, voit käyttää hashia.

Tällainen:

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

Tämä toimii kuin käännössanakirja, jossa avaimet korvataan niiden arvoilla.

Tässä on esimerkki:

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

Joka johtaa:

"bluebluebluegreenred"

Varmista, että 1. argumenttisi vastaa avaimia.

Tässä tapauksessa \w vastaa yksittäisiä merkkejä, joten se vastaa ”B” ja korvaa sen sitten ”sinisellä”.

Yhteenveto

Olet oppinut Rubyn gsub-metodista! Se on tehokas metodi, jonka avulla voit korvata tai korvata merkkejä merkkijonon sisällä.

Sillä on useita käyttötarkoituksia:

  • Epätevien merkkien poistaminen (tekemällä 2. argumentti tyhjäksi merkkijonoksi)
  • Sijoitussalpaajien & akronyymien korvaaminen niiden täydellisillä arvoilla
  • Mallien &logiikan käyttäminen merkkijonon muuttamiseen

Nyt on sinun vuorosi harjoitella tämän metodin käyttämistä, niin että saat uuden tietämyksesi jäämään muistiin.

Kiitos lukemisesta 🙂

Vastaa Peruuta vastaus

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *

Arkistot

  • tammikuu 2022
  • joulukuu 2021
  • marraskuu 2021
  • lokakuu 2021
  • syyskuu 2021

Meta

  • Kirjaudu sisään
  • Sisältösyöte
  • Kommenttisyöte
  • 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