string.gsub() для подстановки
Часть раздела Логика и управление потоком путешествия по Lua на Coddy. Урок 35 из 54.
При работе со строками часто требуется находить и заменять текст. Функция Lua string.gsub() упрощает эту задачу, выполняя глобальную замену: находя все вхождения шаблона и заменяя их чем-то другим.
Базовый синтаксис принимает три аргумента: исходную строку, шаблон для поиска и текст замены:
local result = string.gsub(originalString, pattern, replacement)Вот простой пример, который заменяет все пробелы на символы подчёркивания:
local text = "hello world from lua"
local cleaned = string.gsub(text, " ", "_")
print(cleaned) -- Вывод: hello_world_from_luaФункция возвращает два значения: изменённую строку и количество выполненных замен. При необходимости можно получить оба значения:
local result, count = string.gsub("foo bar foo", "foo", "baz")
print(result) -- Вывод: baz bar baz
print(count) -- Вывод: 2В отличие от некоторых функций для работы со строками, которые находят только первое совпадение, string.gsub() по умолчанию заменяет каждое вхождение, что делает её идеальной для задач очистки текста, таких как удаление нежелательных символов или стандартизация форматирования.
Задание
ЛегкоНапишите функцию cleanText, которая принимает text и возвращает очищенную версию, в которой все пробелы заменены символами подчёркивания.
Используйте string.gsub(), чтобы заменить каждый символ пробела в тексте символом подчёркивания.
Параметры:
text(string): Текст для очистки
Возвращает: Текст, в котором все пробелы заменены символами подчёркивания (string)
Попробуйте сами
function cleanText(text)
-- Напишите код здесь
end
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Логика и управление потоком
1Продвинутая итерация таблиц
Итерация с помощью pairs()Итерация с помощью ipairs()pairs() против ipairs()Повторение — Лист персонажа4Введение в метатаблицы
Что такое метатаблица?setmetatable и getmetatableМетаметод __indexМетаметод __newindexМетаметод __tostringАрифметические метаметоды. Часть 1Арифметические метаметоды. Часть 2Итоги — Таблица только для чтения7Продвинутая работа со строками
string.gsub() для подстановкиВведение в строковые шаблоныstring.find()string.match()Итерация с помощью string.gmatch()Итоги — Парсер лог-файлов2Дополнительные функции библиотеки table
table.concat()Создание таблиц и unpack()table.sort()Пользовательская сортировка с помощью функцийИтоги — Таблица рекордовПотренируйтесь самостоятельно: Онлайн-компилятор Lua