Menu
Coddy logo textTech

string.find()

Часть раздела Логика и управление потоком путешествия по Lua на Coddy. Урок 37 из 54.

Теперь, когда вы понимаете классы символов, вы можете использовать их с string.find(), чтобы искать шаблоны вместо точного текста. Это открывает широкие возможности для проверки и анализа текста.

Функция string.find() работает с шаблонами так же, как и с буквальными строками. Она возвращает позицию, где шаблон впервые совпадает:

local text = "User123"
local position = string.find(text, "%d")
print(position)  -- Вывод: 5

Это находит первую цифру в строке, которая находится на позиции 5. Вы также можете искать противоположное с помощью классов символов в верхнем регистре:

local code = "ABC123"
local position = string.find(code, "%D")
print(position)  -- Вывод: 1

Здесь %D соответствует любому нецифровому символу, поэтому находит первую букву в позиции 1.

Распространённая задача валидации — проверить, начинается ли строка с определённого шаблона. Вы можете использовать якорь ^ в начале шаблона, чтобы сопоставление выполнялось только в начале строки:

local username = "player42"
local startsWithLetter = string.find(username, "^%a")

if startsWithLetter then
    print("Valid username")
else
    print("Username must start with a letter")
end

Этот шаблон проверяет, начинается ли строка с буквы, что делает его полезным для проверки ввода, когда требуются определённые форматы.

challenge icon

Задание

Легко

Напиши функцию startsWithLetter, которая принимает text и возвращает, начинается ли строка с буквы.

Используй string.find() с якорем ^ и классом символов %a, чтобы проверить, начинается ли строка с буквы.

Параметры:

  • text (string): Строка для проверки

Возвращает: true, если строка начинается с буквы, и false в противном случае (boolean)

Попробуйте сами

function startsWithLetter(text)
    -- Напишите код здесь
end
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Логика и управление потоком

Потренируйтесь самостоятельно: Онлайн-компилятор Lua