Открыть меню
Открыть персональное меню
Вы не представились системе
Your IP address will be publicly visible if you make any edits.

Модуль:Split

Материал из wiki.iccup.org

Для документации этого модуля может быть создана страница Модуль:Split/doc

local libraryUtil = require('libraryUtil')
local checkType = libraryUtil.checkType

local p = {}

--- Разделяет строку `str` по шаблону `pattern`.
-- @param str string Строка для разделения.
-- @param pattern string Шаблон, по которому происходит разделение.
-- @param plain boolean Опционально. Если true, шаблон воспринимается как обычная строка.
-- @return table Список строк, полученных в результате разделения.
function p.split(str, pattern, plain)
    checkType('split', 1, str, 'string')
    checkType('split', 2, pattern, 'string')
    checkType('split', 3, plain, 'boolean', true)

    local i, out = 1, {}
    local split_start, split_end = string.find(str, pattern, i, plain)
    while split_start do
        out[#out + 1] = string.sub(str, i, split_start - 1)
        i = split_end + 1
        split_start, split_end = string.find(str, pattern, i, plain)
    end
    out[#out + 1] = string.sub(str, i)

    return out
end

return p