Lua:
Ta bort tecken som matchar ett mönster
Hur man gör:
local text = "Hej! Hur mår du idag, kära programmerare?"
local pattern = "[%p%c%s]"
local cleaned_text = text:gsub(pattern, "")
print(cleaned_text) -- Output: HejHurmrduidagkraprogrammerare
I exemplet ovan har vi använt gsub
för att radera alla skiljetecken, kontrolltecken och mellanslag från textsträngen.
local data = "Användare: Emil_92% (Online)"
local pattern_to_remove = "%W"
local username = data:match("Användare: (%w+)")
local sanitized_data = data:gsub(pattern_to_remove, "")
print(username) -- Output: Emil_92
print(sanitized_data) -- Output: AnvändareEmil92Online
Här använder vi %W
(icke-ord-tecken-mönster) för att städa upp en sträng och %w+
för att hitta användarnamnet.
Djupdykning:
I tidiga datorprogrammeringsspråk var textmanipulation både klumpigt och långsamt. Lua förändrade det med dess inbyggda mönsterverktyg. string.gsub
är en kraftfull funktion som inte bara raderar tecken, den kan även ersätta och modifiera text baserat på mönster.
Alternativ till mönsterborttagning kan vara manual loopar där man går igenom varje tecken och bygger upp en ny sträng, eller med hjälp av externa bibliotek som rex
.
Implementationsdetaljer är viktiga: gsub
använder Lua-mönster, som liknar men är inte identiska med reguljära uttryck. En bra förståelse för dessa mönster är nyckeln till effektiv och exakt textmanipulation.
Se Även:
- Lua Manual on Patterns: https://www.lua.org/manual/5.4/manual.html#6.4.1
- ‘Programming in Lua’ Book on Text Processing: https://www.lua.org/pil/20.2.html