использование массива слов

coldplugg.

Участник
Автор темы
180
22
Версия MoonLoader
.026-beta
как в данной строке, за место слова Опру дом использовать массив слов
Lua:
line:match('Администратор (%S+)%[(%d+)%] посадил игрока (%S+)%[(%d+)%] в деморган на (%d+) минут%. Причина: Опру дом №(%d+) %(%d+%p%d+сек')
Lua:
local array_housebuy        = {"Опру дом", "Опра дом", "опру дом", "опра дом", "opra", "opra dom", "Opra dom", "Opra Dom"}
 
Последнее редактирование:
Решение
Lua:
local array_housebuy = {"Опру дом", "Опра дом", "опру дом", "опра дом", "opra", "opra dom", "Opra dom", "Opra Dom"}
local dialogText = "{FF6347}[2023-01-15 12:30:22] Администратор CoolidgeBot[0] посадил игрока Cold[2] в деморган на 2999 минут. Причина: Опру дом №121 (1.64сек.)\n[2023-01-15 12:14:29] Администратор Cold[0] посадил игрока Cold[0] в деморган на 1 минут. Причина: 1"

for line in dialogText:gmatch('[^\n]+') do
    local sosuTabl = {line:match('Администратор (%S+)%[(%d+)%] посадил игрока (%S+)%[(%d+)%] в деморган на (%d+) минут%. Причина: (.+) №(%d+) %(%d+%p%d+сек')}
    for a,b in pairs(array_housebuy) do
        if sosuTabl[6] then
            if sosuTabl[6]:match(b) then
                print(1)
            end...

Trawer2289

Известный
48
9
Lua:
line:match('Администратор (%S+)%[(%d+)%] посадил игрока (%S+)%[(%d+)%] в деморган на (%d+) минут%. Причина: (%s+) дом №(%d+) %(%d+%p%d+сек')
local array_housebuy = {"Опру дом", "Опра дом", "опру дом", "опра дом", "opra", "opra dom", "Opra dom", "Opra Dom"}
if table.contains(array_housebuy, string.lower(housebuy)) then
  line:match('Администратор (%S+)%[(%d+)%] посадил игрока (%S+)%[(%d+)%] в деморган на (%d+) минут%. Причина: (%s+) дом №(%d+) %(%d+%p%d+сек')
end
 

RedHolms

Известный
Проверенный
618
360
как в данной строке, за место слова Опру использовать массив слов
Lua:
line:match('Администратор (%S+)%[(%d+)%] посадил игрока (%S+)%[(%d+)%] в деморган на (%d+) минут%. Причина: Опру дом №(%d+) %(%d+%p%d+сек')
Lua:
local array_housebuy        = {"Опру дом", "Опра дом", "опру дом", "опра дом", "opra", "opra dom", "Opra dom", "Opra Dom"}
Лучше получать само значение причины, и потом уже из него определять
 
  • Нравится
Реакции: qdIbp

PSYCHEDELIC

Потрачен
4
4
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.

RedHolms

Известный
Проверенный
618
360
Lua:
local admin_nickname, admin_id, player_nickname, player_id, time_in_minutes, reason = text:match("Администратор ([^%[]+)%[(%d+)%] посадил игрока ([^%[]+)%[(%d+)%] в деморган на (%d+) минут%. Причина: (.+)")
if admin_nickname then
   -- ...
end
 

qdIbp

Автор темы
Проверенный
1,388
1,146
Lua:
local array_housebuy = {"Опру дом", "Опра дом", "опру дом", "опра дом", "opra", "opra dom", "Opra dom", "Opra Dom"}
local dialogText = "{FF6347}[2023-01-15 12:30:22] Администратор CoolidgeBot[0] посадил игрока Cold[2] в деморган на 2999 минут. Причина: Опру дом №121 (1.64сек.)\n[2023-01-15 12:14:29] Администратор Cold[0] посадил игрока Cold[0] в деморган на 1 минут. Причина: 1"

for line in dialogText:gmatch('[^\n]+') do
    local sosuTabl = {line:match('Администратор (%S+)%[(%d+)%] посадил игрока (%S+)%[(%d+)%] в деморган на (%d+) минут%. Причина: (.+) №(%d+) %(%d+%p%d+сек')}
    for a,b in pairs(array_housebuy) do
        if sosuTabl[6] then
            if sosuTabl[6]:match(b) then
                print(1)
            end
        end
    end
end