Lua-hahmosyntaksi
Opitte Lua-hahmojen merkkiluokat %d, %a ja %s, ankkurit sekä kvanttorit.
Lua-hahmosyntaksi on ilmainen Lua Academy-oppitunti CoddyKitissä. Tämä on oppitunti 1/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.
Lua-kuviot ja regex
Lua käyttää omaa kuviokieltään, ei täysimääräisiä POSIX-säännöllisiä lausekkeita. Se on yksinkertaisempi ja nopeampi, mutta siitä puuttuvat vaihtoehdot (|) ja ennakkotarkistukset.
Merkkiluokat
%d tarkoittaa numeroa, %a kirjainta, %l pientä kirjainta, %u isoa kirjainta, %s tyhjemerkkiä, %p välimerkkiä ja %w aakkosnumeerista merkkiä. Iso kirjain tekee luokasta negaation: %D = muu kuin numero.
Kvantifioijat
* nolla tai useampi (ahne), + yksi tai useampi, ? nolla tai yksi, - nolla tai useampi (laiska/lyhin osuma).
local s = "hello world"
print(s:match("%a+")) -- hello (first word)
print(s:match(".-o")) -- hell (lazy stops early)Ankkurit
^ ankkuroidaan merkkijonon alkuun, $ loppuun.
print(("hello"):match("^h")) -- h
print(("hello"):match("o$")) -- o
print(("hello"):match("^world")) -- nilMerkkijoukot merkeillä []
Mukautetut merkkiluokat: [aeiou] vastaa mitä tahansa vokaalia, [^aeiou] mitä tahansa muuta kuin vokaalia, [a-z] pieniä kirjaimia.
local s = "Hello World 123"
print(s:match("[A-Z]")) -- H
print(s:match("[0-9]+")) -- 123Erikoismerkkien suojaaminen
Erikoismerkit ( ) . % + - * ? [ ^ $ on suojattava merkillä %.
local s = "price: 3.14"
print(s:match("%d+%.%d+")) -- 3.14 (. escaped to match literal dot). jokerimerkkinä
. vastaa mitä tahansa yksittäistä merkkiä. Yhdistä se kvantifioijiin: .- vastaa laiskasti mitä tahansa.
print(("abc123"):match("(.-)%d")) -- abc (lazy, stops at first digit)Reunakuviot %f
%f[set] vastaa tyhjää kohtaa sellaisen merkin ja set-joukkoon kuuluvan merkin välissä, joka ei kuulu set-joukkoon — tämä on hyödyllistä sananrajojen tunnistamiseen.
local s = "hello world foo"
for w in s:gmatch("%f[%a]%a+") do
print(w) -- hello, world, foo
endstring.find ja string.match
string.find palauttaa alku- ja loppuindeksit (+ kaappaukset). string.match palauttaa osuvan tekstin (tai kaappaukset) suoraan.
local s = "date: 2025-01-15"
local i, j = s:find("%d%d%d%d%-%d%d%-%d%d")
print(i, j) -- 7 16
print(s:match("(%d+)-(%d+)-(%d+)")) -- 2025 01 15Tasapainotettu osuma %b
%bxy vastaa merkkien x ja y muodostamaa tasapainotettua paria. Esimerkiksi %b() vastaa tasapainotettuja sulkeita, myös sisäkkäiset sulkeet mukaan lukien.
local s = "func(a, (b+c), d)"
print(s:match("%b()")) -- (a, (b+c), d)Kuvioiden rajoitukset
Lua-kuviot eivät tue vaihtoehtoja (a|b), takaisinkutsuja, ennakko- tai jälkikatselua eivätkä nimettyjä ryhmiä. Käyttäkää näihin LPEG:tä tai ulkoista regex-kirjastoa.
Kuviosyntaksia koskeva kysymys
Mikä kuvio vastaa yhtä tai useampaa numeroa?
Kertaus: Lua-kuviosyntaksi
Lua-kuvioissa käytetään luokkia %d %a %s, kvantifioijia * + ? -, ankkureita ^ $, joukkoja [] ja tasapainotettuun osumaan tarkoitettua merkintää %b. Ne ovat tehokkaita, mutta niistä puuttuu regex-vaihtoehtojen tuki.
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 ”Lua-hahmosyntaksi” ilmainen?
Kyllä — voit lukea täällä verkossa kokonaan ilmaiseksi mitkä tahansa Lua Academy-oppimispolun 3 oppituntia, myös oppitunnin “Lua-hahmosyntaksi”. 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 ”Lua-hahmosyntaksi”?
Opitte Lua-hahmojen merkkiluokat %d, %a ja %s, ankkurit sekä kvanttorit. 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 1/4.
Kuinka kauan ”Lua-hahmosyntaksi”-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.