aboutsummaryrefslogtreecommitdiffstats
path: root/lualib/lua_util.lua
blob: 755773ea4abb504a0d0de21a3fc31ddc994557d0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
local exports = {}

local split_grammar = {}
exports.rspamd_str_split = function(s, sep)
  local lpeg = require "lpeg"
  local gr = split_grammar[sep]

  if not gr then
    local _sep = lpeg.P(sep)
    local elem = lpeg.C((1 - _sep)^0)
    local p = lpeg.Ct(elem * (_sep * elem)^0)
    gr = p
    split_grammar[sep] = gr
  end

  return gr:match(s)
end

return exports