Skip to content

Archives

  • Leden 2022
  • Prosinec 2021
  • Listopad 2021
  • Říjen 2021
  • Září 2021

Categories

  • Žádné rubriky
Trend RepositoryArticles and guides
Articles

3 úžasné způsoby použití metody Gsub v Ruby

On 4 října, 2021 by admin

Povíme si něco o metodě gsub v Ruby.

Nejprve budete potřebovat řetězec, abyste si s touto metodou mohli hrát.

Proč?

Protože pomocí gsub na řetězci nahrazujete jeho části.

V podstatě:

„Sub“ ve slově „gsub“ znamená „substitute“ a „g“ znamená „global“.

Máš svůj řetězec?

Dobře.

Jestliže ne, můžeš si půjčit můj.

Tady je:

str = "white chocolate"

Řekněme, že chceme nahradit „bílý“ za „tmavý“.

Takto:

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

To znamená:

Dáme-li řetězec str, přikážeme mu, aby nahradil VŠECHNY výskyty prvního slova (white) druhým slovem (dark).

To znamená, že budeme jíst mnohem lepší čokoládu.

Aha, počkat, vždyť je to jen řetězec.

To přece nemůžeme jíst!“

Ano tak či onak…

Metoda Ruby gsub toho umí mnohem víc než jen prosté nahrazování.

Podívejme se na několik příkladů.

  • Záměna vzorů pomocí regulárního výrazu
  • Pokročilý gsub s bloky
  • Nahrazení více výrazů pomocí hashe
  • Shrnutí

Záměna vzorů pomocí regulárního výrazu

Záměna jednoho slova je v pořádku.

Ale co kdybyste mohli nahradit vzor?

Například:

Rok, e-mailovou adresu, telefonní číslo atd.

Můžete!

Tady je příklad:

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

První argument je regulární výraz a je toho příliš mnoho na to, abychom se jím zde zabývali.

Je to ale jazyk pro porovnávání vzorů.

V tomto případě \d hledá čísla, jako je „1“ v „a1“.

Můžete také udělat toto:

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

Což má za následek:

"1a"

Prohodili jsme pořadí!“

Funguje to pomocí funkce zvané „skupiny zachycení“.

Můžeme použít skupiny jako pro první skupinu, pro druhou skupinu atd.

Skupiny se vytvářejí pomocí závorek.

Pokročilý gsub s bloky

Věci začnou být opravdu zajímavé, když začnete používat gsub s blokem.

Proč?

Protože v rámci bloku můžete pomocí logiky rozhodnout, jak něco nahradit.

Místo použití statické hodnoty.

Například:

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

Zvíře najdeme pomocí \w+, což znamená „jeden nebo více alfanumerických znaků“.

Tedy:

  • Jestliže je to „pes“, nahradíme ho slovem „kočka“
  • Jestliže je to cokoli jiného, nahradíme ho slovem „pes“

Tato logika není možná u statické hodnoty, 2. parametru gsub.

Nahrazení více výrazů pomocí hashe

Pokud máte seznam záměn, které chcete provést, můžete použít hash.

Tak jako tento:

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

Funguje to jako překladový slovník, kde se klíče nahradí jejich hodnotami.

Tady je příklad:

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

Címž vznikne:

"bluebluebluegreenred"

Ujistěte se, že váš 1. argument bude odpovídat klíčům.

V tomto případě \w odpovídá jednotlivým znakům, takže bude odpovídat „B“ a pak ho nahradí „modrou“.

Shrnutí

Poznali jste metodu gsub v jazyce Ruby! Je to mocná metoda, která umožňuje nahrazovat nebo nahrazovat znaky uvnitř řetězce.

Má mnohostranné využití:

  • Odstranění neplatných znaků (tím, že 2. argument je prázdný řetězec)
  • Záměna zástupných znaků & zkratek za jejich plné hodnoty
  • Použití logiky vzorů & ke změně řetězce

Nyní je řada na vás, abyste si práci s touto metodou procvičili a mohli si nové znalosti upevnit.

Děkujeme za přečtení 🙂

.

Napsat komentář Zrušit odpověď na komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *

Archivy

  • Leden 2022
  • Prosinec 2021
  • Listopad 2021
  • Říjen 2021
  • Září 2021

Základní informace

  • Přihlásit se
  • Zdroj kanálů (příspěvky)
  • Kanál komentářů
  • Česká lokalizace
  • 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