Решение примера из чата

mrbean27

Участник
Автор темы
26
25
Нужно искать примеры в чате, пример может быть длиной до 6-ти чисел включительно, также могут быть использованы рандомные цвета, порядок которых ты чисто физически не знаешь
Пример: Что-то там 53+73*9/23 Что-то там
Пример 2: Что-то там 5 + 1 - 6 + 4 / 2 + 8 Что-то там

Я написал такой говнокод:
Lua:
function samp.onServerMessage(color,text)
    local plus = '[-+/*^]%d+'
    local plus2 = '%s[-+/*^]%s%d+'
    if text:match('%d+'..plus..plus..plus..plus..plus) or text:match('%d+'..plus..plus..plus..plus) or text:match('%d+'..plus..plus..plus) or text:match('%d+'..plus..plus) or text:match('%d+'..plus) then
        local message_chat = text:match(('%d+'..plus..plus..plus..plus..plus)) or text:match(('%d+'..plus..plus..plus..plus)) or text:match(('%d+'..plus..plus..plus)) or text:match(('%d+'..plus..plus)) or text:match(('%d+'..plus))
        local otvet = math.round(calc(message_chat),2)
        lua_thread.create(function()
            wait(math.random(0, 500))
            sampSendChat(otvet)
        end)
    elseif text:match('%d+'..plus2..plus2..plus2..plus2..plus2) or text:match('%d+'..plus2..plus2..plus2..plus2) or text:match('%d+'..plus2..plus2..plus2) or text:match('%d+'..plus2..plus2) or text:match('%d+'..plus2) then
        local message_chat = text:match(('%d+'..plus2..plus2..plus2..plus2..plus2)) or text:match(('%d+'..plus2..plus2..plus2..plus2)) or text:match(('%d+'..plus2..plus2..plus2)) or text:match(('%d+'..plus2..plus2)) or text:match(('%d+'..plus2))
        local otvet = math.round(calc(message_chat),2)
        lua_thread.create(function()
            wait(math.random(0, 500))
            sampSendChat(otvet)
        end)
    end
end

function calc(str)
    return assert(load("return " .. str))()
end

Мой говнокод решает такие примеры, но только если в нём используется только один цвет текста по типу:
Что-то там 5+7+4+1+8 Что-то там

1. Как мне сделать поиск этих примеров без добавлений каждый раз этого чёртвого плюса, либо как сделать чтобы в примере могло быть неограниченное количество чисел?
2. Как игнорировать цвет текста в чате при поиске?