Advertisement
dalvorsn

Untitled

Feb 25th, 2013
45
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 0.67 KB | None | 0 0
  1. function get_patterns(...)
  2.     local params            = {...}
  3.     local occurrences       = type(params[5]) == "table" and params[4] or {}
  4.  
  5.     -- get_patterns(str[, min_length = 1[, max_length = 1]])
  6.     local str               = type(params[1]) == "string" and params[1] or error("String expected, got ".. type(params[1]))
  7.     local min_length        = type(params[2]) == "number" and params[2] or 1
  8.     local max_length        = type(params[3]) == "number" and params[3] or min_length
  9.  
  10.     for len = min_length, max_length do
  11.         for init = 1, #str - len do
  12.             local tmp = string.sub(str, init, init + len - 1)
  13.             occurrences[tmp] = occurrences[tmp] and ( occurrences[tmp] + 1 ) or 1
  14.         end
  15.     end
  16.     return occurrences
  17. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement