Модуль:Split

Материал из Dota 2 Вики
Перейти к: навигация, поиск

Документация для Модуль:Split Перейти к коду ↴ [ править | очистить ]

This module provides a more efficient way than mw.text.split() to split strings in Lua.


local checkType = require( 'libraryUtil' ).checkType


return function ( 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 or false ) )
  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 or false ) )
  end
  out[#out + 1] = string.sub( str, i )

  return out
end