Menu
Coddy logo textTech

Wprowadzenie do wzorców ciągów znaków

Część sekcji Logika i przepływ programu ścieżki Lua w Coddy. Lekcja 36 z 54.

W poprzedniej lekcji użyto string.gsub() do wyszukiwania dokładnego tekstu, takiego jak spacje lub konkretne słowa. Ale co, jeśli trzeba znaleźć „dowolną cyfrę” lub „dowolną literę”, nie znając dokładnego znaku? W tym przypadku przydają się wzorce tekstowe.

Wzorce ciągów znaków w Lua pozwalają opisać, jakiego rodzaju tekstu szukasz, zamiast podawać jego dokładną treść. Są prostsze niż wyrażenia regularne, ale wystarczająco zaawansowane do większości zadań związanych z przetwarzaniem tekstu.

Lua udostępnia specjalne kody nazywane klasami znaków, które dopasowują kategorie znaków. Oto najczęściej używane:

%d  -- dopasowuje dowolną cyfrę (0-9)
%a  -- dopasowuje dowolną literę (a-z, A-Z)
%s  -- dopasowuje dowolny biały znak (spację, tabulator, znak nowej linii)
%w  -- dopasowuje dowolny znak alfanumeryczny (literę lub cyfrę)
%p  -- dopasowuje dowolny znak interpunkcyjny

Oto, jak możesz użyć tych wzorców wraz z string.find(), aby znaleźć pierwszą cyfrę w ciągu znaków:

local text = "Room 42 is available"
local position = string.find(text, "%d")
print(position)  -- Wynik: 6

Możesz też używać wielkich liter tych klas, aby dopasować przeciwieństwo. Na przykład %D dopasowuje każdy znak, który nie jest cyfrą, a %A dopasowuje każdy znak, który nie jest literą.

challenge icon

Wyzwanie

Łatwy

Napisz funkcję containsDigit, która przyjmuje text i zwraca informację, czy tekst zawiera co najmniej jedną cyfrę.

Użyj string.find() z klasą znaków %d, aby sprawdzić, czy w ciągu znaków występuje jakakolwiek cyfra.

Parametry:

  • text (string): Tekst, w którym należy sprawdzić obecność cyfr

Zwraca: true, jeśli tekst zawiera co najmniej jedną cyfrę, w przeciwnym razie false (boolean)

Spróbuj swoich sił

function containsDigit(text)
    -- Napisz kod tutaj
end
quiz iconSprawdź się

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

Poćwicz samodzielnie: Kompilator Lua online