Поиск и замена текста

Lua:
Поиск и замена текста

Как это сделать:

Функция string.gsub в Lua - это ваш инструмент для поиска и замены. Работает она так:

local text = "Быстрая коричневая лиса перепрыгнула через ленивую собаку."
local searchText = "ленивую"
local replaceWith = "энергичную"

local result = string.gsub(text, searchText, replaceWith)

print(result)

Вывод:

Быстрая коричневая лиса перепрыгнула через энергичную собаку.

Чтобы заменить ВСЕ вхождения, gsub делает это по умолчанию:

local text = "Яблоки сладкие. Яблоки сочные."
local result = string.gsub(text, "Яблоки", "Апельсины")

print(result)

Вывод:

Апельсины сладкие. Апельсины сочные.

Подробности

Поиск и замена текста не уникальны для Lua; это общая функция в языках программирования. string.gsub в Lua возвращает к своим корням манипуляции со строками, предлагая прямолинейный подход к обработке шаблонов и замен.

Исторически, gsub (глобальная замена) был повлиян командой sed в Unix и мощными возможностями сопоставления шаблонов в Perl. Шаблоны Lua, хотя и проще, чем регулярные выражения, найденные в других языках, все же могут обрабатывать сложные совпадения с небольшим творчеством.

Альтернативы string.gsub включают ручное итерирование по строкам и конструирование замен - более подверженный ошибкам метод. Для обработки больших объемов текста можно использовать специализированные библиотеки разбора.

С точки зрения реализации, gsub может принимать функцию в качестве аргумента замены, позволяя программно контролировать замену.

local result = string.gsub(text, "(%a+)", function(word)
  return #word > 4 and word:upper() or word
end)

Этот фрагмент будет переводить слова длиннее четырёх символов в верхний регистр.

Смотрите также