Lua:
Пошук та заміна тексту
Як це зробити:
Lua дає можливість шукати та заміняти текст за допомогою шаблонів та функцій. Ось як це робити:
local text = "Привіт, світ! Доброго ранку, світ!"
local to_find = "світ"
local replace_with = "Всесвіт"
local result = text:gsub(to_find, replace_with)
print(result) -- Виведе: "Привіт, Всесвіт! Доброго ранку, Всесвіт!"
Ще один приклад, якщо вам потрібно використовувати шаблони:
local text = "Ідентифікатори: #123, #456, #789"
local pattern = "#(%d+)"
local increment_id = function(id) return "#" .. (tonumber(id) + 1) end
local result = text:gsub(pattern, increment_id)
print(result) -- Виведе: "Ідентифікатори: #124, #457, #790"
Поглиблений огляд
Пошук та заміна тексту в Lua реалізовані через функцію string.gsub
. Історично, такі операції є основними для обробки тексту та маніпуляції даними. Lua використовує «шаблони», що є спрощеною версією регулярних виразів, зручних для перевірки, пошуку та маніпуляції рядками.
Більш складні пошукові вирази можуть бути реалізовані з використанням відповідних паттернів, які допускають спеціальні символи та квантифікатори для опису шаблонів. Наприклад, %d+
знайде одну або більше цифр.
Альтернативно, інші мови програмування пропонують регулярні вирази (regular expressions), які дають ще більш потужні можливості для пошуку та заміни тексту.
Ще кілька ресурсів
- Lua 5.4 Reference Manual - Patterns - Офіційна документація по шаблонах у Lua.
- Programming in Lua (first edition) - Розділ про шаблони з книги “Програмування на Lua”.