string.gsub() do podstawiania
Część sekcji Logika i przepływ programu ścieżki Lua w Coddy. Lekcja 35 z 54.
Podczas pracy z ciągami znaków często trzeba znajdować i zastępować tekst. Funkcja string.gsub() w Lua ułatwia to dzięki globalnemu podstawianiu: znajduje wszystkie wystąpienia wzorca i zastępuje je czymś innym.
Podstawowa składnia przyjmuje trzy argumenty: oryginalny ciąg znaków, wzorzec do znalezienia i tekst zastępujący:
local result = string.gsub(originalString, pattern, replacement)Oto prosty przykład, który zamienia wszystkie spacje na podkreślenia:
local text = "hello world from lua"
local cleaned = string.gsub(text, " ", "_")
print(cleaned) -- Wynik: hello_world_from_luaFunkcja zwraca dwie wartości: zmodyfikowany ciąg znaków i liczbę dokonanych zamian. W razie potrzeby możesz przechwycić obie:
local result, count = string.gsub("foo bar foo", "foo", "baz")
print(result) -- Wynik: baz bar baz
print(count) -- Wynik: 2W przeciwieństwie do niektórych funkcji łańcuchów znaków, które znajdują tylko pierwsze dopasowanie, string.gsub() domyślnie zastępuje każde wystąpienie, dzięki czemu doskonale nadaje się do czyszczenia tekstu, na przykład usuwania niepożądanych znaków lub ujednolicania formatowania.
Wyzwanie
ŁatwyNapisz funkcję cleanText, która przyjmuje text i zwraca oczyszczoną wersję, w której wszystkie spacje zostały zastąpione znakami podkreślenia.
Użyj string.gsub(), aby zastąpić każdy znak spacji w tekście znakiem podkreślenia.
Parametry:
text(string): Tekst do oczyszczenia
Zwraca: Tekst, w którym wszystkie spacje zostały zastąpione znakami podkreślenia (string)
Spróbuj swoich sił
function cleanText(text)
-- Wpisz kod tutaj
end
Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
Wszystkie lekcje w sekcji Logika i przepływ programu
1Zaawansowane iterowanie po tabelach
Iterowanie za pomocą pairs()Iterowanie za pomocą ipairs()pairs() a ipairs()Powtórka — karta postaci4Wprowadzenie do metatabel
Czym jest metatabela?setmetatable i getmetatableMetametoda __indexMetametoda __newindexMetametoda __tostringMetamეტody arytmetyczne — część 1Metamეტody arytmetyczne — część 2Podsumowanie — tabela tylko do odczytu7Zaawansowana obróbka ciągów znaków
string.gsub() do podstawianiaWprowadzenie do wzorców ciągów znakówstring.find()string.match()Iterowanie za pomocą string.gmatch()Podsumowanie – parser plików dziennika2Więcej funkcji biblioteki table
table.concat()Tworzenie tabel i unpack()table.sort()Sortowanie niestandardowe za pomocą funkcjiPodsumowanie — tablica najlepszych wyników5Projekt: silnik tekstowej gry przygodowej
Konfiguracja projektu: pokójŁączenie pokoiPoćwicz samodzielnie: Kompilator Lua online