Att använda reguljära uttryck

Lua:
Att använda reguljära uttryck

Hur man gör:

Lua stöder inte reguljära uttryck inbyggt på samma sätt som språk som Perl eller Python. Istället erbjuder det möjligheter till mönstermatchning som täcker många vanliga användningsfall för reguljära uttryck. Dock, för fullständigt stöd för reguljära uttryck, kan man använda ett tredjepartsbibliotek såsom lrexlib.

Grundläggande Mönstermatchning i Lua:

Lua tillhandahåller ett kraftfullt system för mönstermatchning som du kan använda för enkla substitutioner och sökningar:

-- Enkel sökning
local str = "Hej, världen!"
if string.find(str, "världen") then
  print("Matchning hittad!")
end
-- Utdata: Matchning hittad!

-- Enkel substitution
local s = string.gsub("Lua är toppen!", "toppen", "fantastiskt")
print(s)
-- Utdata: Lua är fantastiskt!

Fånga Delsträngar:

Du kan fånga delar av strängen som matchar mönster:

local datum = "Idag är det 17/05/2023."
local d, m, å = string.match(datum, "(%d+)/(%d+)/(%d+)")
print("Dag:", d, "Månad:", m, "År:", å)
-- Utdata: Dag: 17 Månad: 05 År: 2023

Använda lrexlib för Reguljära Uttryck:

För att använda riktiga reguljära uttryck kan du installera och använda lrexlib. Antag att du har installerat det (luarocks install lrexlib-pcre), du kan då göra mer komplex mönstermatchning:

local rex = require 'rex_pcre'

local text = "Regnet i Spanien stannar mestadels på slätten."
local regex = "\\bS\\w+"
local antal, fel = rex.gsub(text, regex, function(w)
  return w:upper()
end)
if fel then
  print("Fel:", fel)
else
  print("Modifierad text:", text)
  print("Substitutioner gjorda:", antal)
end
-- Exempelutdata: Modifierad text: Regnet i SPANIEN stannar mestadels på slätten.
-- Substitutioner gjorda: 1

De ovanstående exemplen illustrerar grundläggande användning inom Lusas egna system för mönstermatchning och hur man kan utnyttja kraften i reguljära uttryck via lrexlib. Oavsett om du utför enkla strängmanipulationer eller kräver fullständig mångsidighet av reguljära uttryck, kan Lua i kombination med kraftfulla bibliotek uppfylla dina behov.