Lua Academy · Oppitunti

string.gsub muunnoksiin

Korvatkaa hahmoja merkkijonoilla, funktioilla tai taulukkohauilla gsub-funktion avulla.

Oppitunti 4/413 vaihetta

string.gsub muunnoksiin on ilmainen Lua Academy-oppitunti CoddyKitissä. Tämä on oppitunti 4/4. Voit lukea tästä oppimispolusta kokonaan mitkä tahansa 3 oppituntia ilmaiseksi — sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä käytännön harjoittelun sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Oppitunti kuuluu Lua Academy-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Lua Academy-kurssilla on yhteensä 4 oppituntia.

Mikä on string.gsub?

string.gsub(s, pattern, repl, n) korvaa kuvion pattern esiintymät merkkijonossa s arvolla repl. Se palauttaa uuden merkkijonon ja korvausten määrän.

Yksinkertainen merkkijonon korvaus

Korvatkaa literaalisen osamerkkijonon kaikki esiintymät.

local s = "hello world world"
local result, count = s:gsub("world", "Lua")
print(result, count)  -- hello Lua Lua  2

Korvausten rajoittaminen

Välittäkää neljäs argumentti korvausten määrän rajoittamiseksi.

local s = "aaa bbb aaa"
print(s:gsub("aaa", "xxx", 1))  -- xxx bbb aaa  1

Kuvioon perustuva korvaus

Korvatkaa kaikki numerot kiinteällä merkkijonolla.

local s = "abc 123 def 456"
print(s:gsub("%d+", "NUM"))  -- abc NUM def NUM  2

Korvausfunktio

Kun repl on funktio, sitä kutsutaan jokaisella kaappauksella (tai koko osumalla), ja sen palautusarvo korvaa osuman.

local s = "price: 100, tax: 15"
local result = s:gsub("%d+", function(n)
  return tostring(tonumber(n) * 1.1)
end)
print(result)  -- price: 110.0, tax: 16.5

Korvaustaulukko

Kun repl on taulukko, kutakin osumaa (tai kaappausta) käytetään avaimena; taulukon arvo korvaa osuman.

local vars = {name="Alice", lang="Lua"}
local tmpl = "Hello, {name}! Welcome to {lang}."
local result = tmpl:gsub("{(%w+)}", vars)
print(result)  -- Hello, Alice! Welcome to Lua.

Tyhjemerkkien poistaminen

Poistakaa gsub-funktion avulla merkkijonon alussa ja lopussa olevat tyhjemerkit.

local function trim(s)
  return s:gsub("^%s+", ""):gsub("%s+$", "")
end
print("[" .. trim("  hello  ") .. "]")  -- [hello]

Kirjainkoon muuntaminen

Käyttäkää gsub-funktiota yhdessä funktion kanssa kunkin kirjaimen muuntamiseen isoksi tai pieneksi kirjaimeksi.

local function toUpper(s)
  return s:gsub("%a", string.upper)
end
print(toUpper("hello world"))  -- HELLO WORLD

Erikoismerkkien suojaaminen

Suojatkaa kaikki kuvioiden erikoismerkit merkkijonossa, jotta sitä voidaan käyttää literaalisena kuviona.

local function escapePat(s)
  return s:gsub("[%(%)%.%%%+%-%*%?%[%^%$]", "%%%1")
end

Palautetun lukumäärän hyödyntäminen

Toinen palautusarvo eli korvausten määrä on hyödyllinen sen havaitsemiseen, tapahtuiko korvauksia.

local s = "no numbers here"
local result, n = s:gsub("%d+", "X")
if n == 0 then print("nothing replaced") end

Mallikoneen kuvio

Yksinkertainen mallikone korvaa {{key}}-paikanvaraajat tietotaulukon arvoilla.

local function render(tmpl, data)
  return (tmpl:gsub("{{(%w+)}}", data))
end
print(render("Hi {{name}}!", {name="Bob"}))  -- Hi Bob!

gsubia koskeva kysymys

Mitä gsub-funktion repl-funktiona toimivalle argumentille välitetään?

Kertaus: string.gsub

string.gsub on merkkijonojen muunnosten monitoimityökalu: korvatkaa merkkijonoilla, funktioilla (dynaamista laskentaa varten) tai taulukoilla (sanakirjahakuja varten). Se palauttaa myös korvausten määrän.

Aloita maksutta

Opi Lua tekoälytuutorin avulla — ilmaiseksi

Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.

Kurssit
40
Oppitunnit
159

Usein kysytyt kysymykset

Onko oppitunti ”string.gsub muunnoksiin” ilmainen?

Kyllä — voit lukea täällä verkossa kokonaan ilmaiseksi mitkä tahansa Lua Academy-oppimispolun 3 oppituntia, myös oppitunnin “string.gsub muunnoksiin”. Sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä interaktiiviset harjoitukset sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Lua Academy-kurssilla on yhteensä 4 oppituntia.

Mitä opin oppitunnilla ”string.gsub muunnoksiin”?

Korvatkaa hahmoja merkkijonoilla, funktioilla tai taulukkohauilla gsub-funktion avulla. Harjoittelet Lua Academy-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.

Tarvitsenko kokemusta aloittaakseni Lua Academy-opiskelun?

Aiempi kokemus ei ole tarpeen. CoddyKitin Lua Academy-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 4/4.

Kuinka kauan ”string.gsub muunnoksiin”-oppitunnin suorittaminen kestää?

Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.

Voinko kirjoittaa ja suorittaa koodia tällä Lua Academy-oppitunnilla?

Kyllä. Jokainen Lua Academy-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.

Kaikki tämän kurssin oppitunnit

  1. Lua-hahmosyntaksi
  2. Kaappaukset ja string.match
  3. string.gmatch tokenisointiin
  4. string.gsub muunnoksiin
← Takaisin: Lua Academy