Menu
Coddy logo textTech

string.match()

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

Podczas gdy string.find() informuje, gdzie wzorzec występuje w ciągu znaków, czasami trzeba wyodrębnić rzeczywisty tekst, który pasował do wzorca. Właśnie do tego służy string.match(), a w połączeniu z przechwytywaniem staje się jeszcze potężniejsza.

Przechwytywanie pozwala oznaczać konkretne części wzorca, które chcesz wyodrębnić. Tworzysz przechwytywanie, ujmując część wzorca w nawiasy (). Gdy string.match() znajdzie dopasowanie, zwraca przechwycony tekst zamiast samej pozycji.

Oto prosty przykład wyodrębniania liczby z ciągu znaków:

local text = "Player score: 100"
local number = string.match(text, "%d+")
print(number)  -- Wynik: 100

Wzorzec %d+ oznacza „jedną lub więcej cyfr”. Znak + jest modyfikatorem, który dopasowuje jeden lub więcej znaków z poprzedzającej klasy znaków, umożliwiając przechwytywanie liczb wielocyfrowych.

Możesz używać przechwytywania, aby wyodrębniać określone części bardziej złożonego wzorca:

local message = "User: Alice sent a message"
local username = string.match(message, "User: (%a+)")
print(username)  -- Wynik: Alice

Tutaj nawiasy wokół %a+ informują Lua, aby przechwycić sekwencję liter występującą po „User: ”. Pozostała część wzorca pomaga znaleźć właściwą pozycję, ale zwracana jest tylko przechwycona część.

Jeśli twój wzorzec ma wiele przechwyceń, string.match() zwraca każde z nich jako osobną wartość, które możesz przypisać jednocześnie do wielu zmiennych.

challenge icon

Wyzwanie

Łatwy

Napisz funkcję extractPrice, która przyjmuje text i zwraca wartość ceny znalezioną w ciągu znaków.

Użyj string.match() ze wzorcem przechwytującym, aby wyodrębnić cenę liczbową występującą po znaku dolara. Wzorzec powinien przechwytywać jedną lub więcej cyfr za pomocą %d+.

Parametry:

  • text (ciąg znaków): Ciąg znaków zawierający cenę w formacie "Price: $XX"

Zwraca: Cenę liczbową jako ciąg znaków (ciąg znaków)

Spróbuj swoich sił

function extractPrice(text)
    -- Wpisz 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