Säännöllisten lausekkeiden käyttö

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.