Создайте список со всеми возможными заменами - PullRequest
0 голосов
/ 30 мая 2018

Я действительно не знаю, как озаглавить этот вопрос, но вот что я пытаюсь реализовать:

Функция, которая принимает строку и возвращает список со всеми возможными комбинациями длязамена вхождений ! в этой строке на Any.

Пример:

gen_combinations('(test ! with !)')
=> {
    '(test ! with !)',
    '(test Any with !)',
    '(test Any with Any)',
    '(test ! with Any)'
}

1 Ответ

0 голосов
/ 31 мая 2018
function gen_combinations(str)
   local res = {}
   local count = 1
   str:gsub("!", 
      function() 
         count = count * 2 
      end
   )
   for mask = 0, count - 1 do
      table.insert(res, (str:gsub("!", 
         function() 
            mask = math.floor(mask) / 2
            if mask % 1 ~= 0 then 
               return "Any" 
            end 
         end
      )))
   end
   return res
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...