string.find()
Часть раздела Fundamentals путешествия по Lua на Coddy — урок 48 из 90.
Функция string.find() — это мощный инструмент для поиска внутри строк. Она позволяет искать подстроку (называемую шаблоном) внутри более длинной строки и сообщает вам, где именно она была найдена.
Вот базовый синтаксис:
string.find(text, pattern)Когда string.find() успешно находит шаблон, она возвращает два числа: начальную и конечную позиции совпадения. Если шаблон не найден, она возвращает nil.
Вот простой пример:
local sentence = "The treasure is hidden here"
local start_pos, end_pos = string.find(sentence, "treasure")
print(start_pos, end_pos) -- выводит: 5 12В этом примере слово "treasure" начинается с позиции 5 и заканчивается на позиции 12 в предложении.
Задание
ЛегкоСоздайте детектор секретных сообщений, который ищет скрытое кодовое слово внутри более крупного текстового сообщения. Объявите переменную с именем message и присвойте ей значение "The ancient treasure lies beneath the old oak tree". Используйте функцию string.find() для поиска слова "treasure" внутри сообщения и сохраните начальную и конечную позиции в переменных с именами startPos и endPos. Выведите оба значения позиций на отдельных строках.
Шпаргалка
Функция string.find() ищет шаблон внутри строки и возвращает начальную и конечную позиции совпадения или nil, если совпадение не найдено.
Базовый синтаксис:
string.find(text, pattern)Пример:
local sentence = "The treasure is hidden here"
local start_pos, end_pos = string.find(sentence, "treasure")
print(start_pos, end_pos) -- выводит: 5 12Попробуйте сами
-- Объявите переменную message
local message = "The ancient treasure lies beneath the old oak tree"
-- TODO: Напишите здесь свой код, чтобы найти слово "treasure" и сохранить позиции
-- Выведите позиции
print(startPos)
print(endPos)В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Fundamentals
4Операторы 2: Сравнение и логика
Операторы равенстваОператоры сравненияОператор 'and'Оператор 'or'Оператор 'not'Сокращенные вычисленияЗначения Truthy и FalsyИтоги: Простая логика7Основы условной логики
Оператор if-thenОператор if-then-elseОператор elseifИтоги — Сундук с сокровищами10Таблицы, часть 1: Списки
Что такое таблица?Создание таблицыДоступ к элементам по индексуИзменение элементов по индексуОператор длины '#'table.insert()table.remove()Итоги: управление участниками группы13Проект: Простой магазин зелий
Настройка проектаДобавление зелья2Переменные и типы данных
Что такое переменная?ЧислаСтрокиБулевы значенияЗначение 'nil'Функция type()Правила именованияИтоги — Профиль персонажа5Базовый вывод
Вывод литераловВывод переменныхВывод нескольких значенийОбъединение строк и переменныхФункция tostring()ВводПриведение типовПовторение — Отчет о состоянииПовторение — До 1208Основы работы со строками
string.len()string.upper и string.lowerstring.sub()string.rep()string.find()Повторение — Форматирование имени пользователя3Операторы 1: Арифметика и конкатенация
Арифметические операторыОператор остатка от деленияОператор возведения в степеньКонкатенация строкПриоритет операторовПовторение: Простые вычисления6Проект: Вывод характеристик персонажа
Приветственное сообщениеОбъявление характеристик персонажа9Основы функций
Объявление функцииВызов функцииФункции с параметрамиФункции с несколькими параметрамиОператор 'return'Повторение — Калькулятор площади