Регулярка не воркает

R.Toxic

Участник
Автор темы
33
3
Версия MoonLoader
.026-beta
function sampev.onServerMessage(color, text)
local pattern = debug and "- [Жалоба] от (.+)%[(%d+)%]: (.+)" or '{33AA33}- [Жалоба] от (.+)%[(%d+)%]:{FFDD00} (.+)'
if text:match(pattern) then
local name, id, msg = text:match(pattern)
if not rep_window.v and report_autoopen.v then
report.name = u8(name)
report.id = u8(id)
report.text = u8(msg)
rep_window.v = true
end

[15:54:28] - [Жалоба] от Thomas_Lewis[200]: {FFFFFF}test
В чём проблема?
 
Решение
квадратные скобки нужно экранировать (или как там это называется) с помощью %

Lua:
if text:find('%[Жалоба%] от (.+)%[(%d+)%]: {FFFFFF}(.+)') then
    local name, id, msg = text:match('%[Жалоба%] от (.+)%[(%d+)%]: {FFFFFF}(.+)')
    print(name, id, msg)
end
1640870692092.png

chapo

tg/inst: @moujeek
Модератор
9,073
12,045
квадратные скобки нужно экранировать (или как там это называется) с помощью %

Lua:
if text:find('%[Жалоба%] от (.+)%[(%d+)%]: {FFFFFF}(.+)') then
    local name, id, msg = text:match('%[Жалоба%] от (.+)%[(%d+)%]: {FFFFFF}(.+)')
    print(name, id, msg)
end
1640870692092.png
 

R.Toxic

Участник
Автор темы
33
3