Lua Academy · Oppitunti

string.gmatch tokenisointiin

Käykää läpi kaikki merkkijonon osumat string.gmatch-funktiolla.

Oppitunti 3/413 vaihetta

string.gmatch tokenisointiin on ilmainen Lua Academy-oppitunti CoddyKitissä. Tämä on oppitunti 3/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.gmatch?

string.gmatch(s, pattern) palauttaa iteraattorin, joka palauttaa peräkkäin kaikki kuvion pattern osumat merkkijonosta s.

Sanojen läpikäynti

Jäsentäkää merkkijono sanoiksi etsimällä välilyömättömien merkkien jaksoja.

local s = "the quick brown fox"
for word in s:gmatch("%S+") do
  print(word)
end

Osumien kerääminen taulukkoon

Kerätkää kaikki osumat taulukkoon jatkokäsittelyä varten.

local function split(s, pat)
  local parts = {}
  for token in s:gmatch(pat) do
    parts[#parts+1] = token
  end
  return parts
end
local words = split("one two three", "%S+")
print(#words)  -- 3

Numeroiden poimiminen

Poimikaa kaikki kokonaisluvut merkkijonosta kuviolla %d+.

local s = "x=10, y=20, z=30"
for n in s:gmatch("%d+") do
  print(tonumber(n))
end

Kaappausten käyttäminen gmatch-funktiossa

Kun kuvio sisältää kaappauksia, kukin iteraatio palauttaa koko osuman sijaan kaapatut ryhmät.

local s = "from=Alice, to=Bob, cc=Carol"
for k, v in s:gmatch("(%w+)=(%w+)") do
  print(k, "->", v)
end

CSV-jäsennin

Jakakaa CSV-rivi kaappaamalla pilkkujen väliin jäävä sisältö.

local csv = "apple,banana,cherry,date"
for field in (csv .. ","):gmatch("([^,]*),") do
  print(field)
end

Avain–arvo-parien jäsentäminen

Jäsentäkää HTTP-tyylinen otsikkomerkkijono avain–arvo-parien taulukoksi.

local headers = "Content-Type: text/html; Content-Length: 1234"
local parsed = {}
for k, v in headers:gmatch("([%w%-]+): ([^;]+)") do
  parsed[k] = v:match("^%s*(.-)%s*$")
end

Kuvio-osumien laskeminen

Laskekaa, kuinka monta kertaa kuvio esiintyy merkkijonossa.

local function count(s, pat)
  local n = 0
  for _ in s:gmatch(pat) do n = n + 1 end
  return n
end
print(count("banana", "an"))  -- 2

Lauseiden jäsennin

Jakakaa teksti lauseiksi etsimällä välimerkkiin asti ulottuvia osumia.

local text = "Hello. How are you? Fine!"
for sent in text:gmatch("[^.!?]+[.!?]?") do
  print(sent:match("^%s*(.-)%s*$"))
end

gmatch ja string.find silmukassa

gmatch on suositeltu tapa käydä kaikki osumat läpi. string.find-funktion käyttäminen while-silmukassa on monisanaisempaa ja alttiimpaa virheille.

Unicodea koskeva huomautus

Lua-kuviot toimivat tavuilla. Monitavuiset UTF-8-merkit eivät välttämättä vastaa yhden merkin kuvioita oikein. Käyttäkää täyteen Unicode-tukeen UTF-8-kirjastoa.

gmatchia koskeva kysymys

Mitä for w in s:gmatch("%S+") do käy läpi?

Kertaus: string.gmatch

string.gmatch on Lua-kielen vakiomuotoinen jäsennin. Käyttäkää sitä merkkijonojen jakamiseen, kaikkien numeroiden poimimiseen, avain–arvo-parien jäsentämiseen ja kuvio-osumien laskemiseen selkeässä iteraattorisilmukassa.

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.gmatch tokenisointiin” ilmainen?

Kyllä — voit lukea täällä verkossa kokonaan ilmaiseksi mitkä tahansa Lua Academy-oppimispolun 3 oppituntia, myös oppitunnin “string.gmatch tokenisointiin”. 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.gmatch tokenisointiin”?

Käykää läpi kaikki merkkijonon osumat string.gmatch-funktiolla. 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 3/4.

Kuinka kauan ”string.gmatch tokenisointiin”-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