Lua:
Säännöllisten lausekkeiden käyttö
Miten:
Lua ei tue säännöllisiä lausekkeita natiivisti samalla tavalla kuin kielet kuten Perl tai Python. Sen sijaan se tarjoaa mallihakutoiminnallisuutta, joka kattaa monia säännöllisten lausekkeiden yleisiä käyttötarkoituksia. Kuitenkin täyden säännöllisten lausekkeiden tuen saamiseksi voidaan käyttää kolmannen osapuolen kirjastoa, kuten lrexlib
.
Perusmallihaku Luassa:
Lua tarjoaa voimakkaan mallihakujärjestelmän, jota voit käyttää yksinkertaisiin korvaamisiin ja hakuun:
-- Yksinkertainen haku
local str = "Hello, World!"
if string.find(str, "World") then
print("Osuma löydetty!")
end
-- Tuloste: Osuma löydetty!
-- Yksinkertainen korvaaminen
local s = string.gsub("Lua on mahtavaa!", "mahtavaa", "upeaa")
print(s)
-- Tuloste: Lua on upeaa!
Merkkijono-osien ottaminen talteen:
Voit ottaa talteen merkkijonojen osia, jotka vastaavat malleja:
local date = "Tänään on 17/05/2023."
local d, m, y = string.match(date, "(%d+)/(%d+)/(%d+)")
print("Päivä:", d, "Kuukausi:", m, "Vuosi:", y)
-- Tuloste: Päivä: 17 Kuukausi: 05 Vuosi: 2023
lrexlibin
käyttäminen säännöllisiin lausekkeisiin:
Käyttääksesi varsinaisia säännöllisiä lausekkeita, voit asentaa ja käyttää lrexlibiä
. Olettaen, että sinulla on se asennettuna (luarocks install lrexlib-pcre
), voit suorittaa monimutkaisempia mallihakuja:
local rex = require 'rex_pcre'
local text = "Sade Espanjassa pysyy pääasiassa tasangolla."
local regex = "\\bS\\w+"
local count, err = rex.gsub(text, regex, function(w)
return w:upper()
end)
if err then
print("Virhe:", err)
else
print("Muokattu teksti:", text)
print("Korvauksia tehty:", count)
end
-- Esimerkkituloste: Muokattu teksti: Sade ESPANJASSA pysyy PÄÄASIASSA tasangolla.
-- Korvauksia tehty: 3
Yllä olevat esimerkit kuvaavat peruskäyttöä Luassa oman mallihakujärjestelmänsä kanssa ja kuinka hyödyntää säännöllisten lausekkeiden voimaa lrexlibin
kautta. Olitpa sitten suorittamassa yksinkertaisia merkkijonojen manipulaatioita tai tarvitset säännöllisten lausekkeiden täyttä monipuolisuutta, Lua yhdessä voimakkaiden kirjastojen kanssa voi vastata tarpeisiisi.