Podsumowanie – parser plików dziennika
Część sekcji Logika i przepływ programu ścieżki Lua w Coddy. Lekcja 40 z 54.
Wyzwanie
ŁatwyNapisz funkcję parseLogEntry, która przyjmuje logEntry i zwraca wyodrębnione informacje z dziennika w sformatowanym ciągu znaków.
Użyj string.match() z wieloma przechwyceniami, aby wyodrębnić poziom dziennika (w nawiasach), tekst komunikatu i numeryczny identyfikator z wpisu dziennika. Zwróć te trzy informacje oddzielone przecinkami.
Logika:
- Użyj wzorca z trzema przechwyceniami: jednego dla poziomu dziennika w nawiasach, jednego dla tekstu komunikatu i jednego dla numerycznego identyfikatora
- Poziom dziennika składa się z wielkich liter w nawiasach kwadratowych
- Komunikat to tekst między dwukropkiem a numerycznym identyfikatorem
- Identyfikator to co najmniej jedna cyfra na końcu
- Zwróć trzy przechwycone wartości w formacie:
level,message,id
Parametry:
logEntry(ciąg znaków): wpis dziennika w formacie[LEVEL]: Message text ID
Zwraca: wyodrębnione informacje jako level,message,id (ciąg znaków)
Spróbuj swoich sił
function parseLogEntry(logEntry)
-- Wpisz kod tutaj
end
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