Регулярные значения lua // RakSamp Lite

Foriuss

Новичок
Автор темы
26
2
Версия MoonLoader
.026-beta
У меня есть строки:
txt:
Администратор Nick_Name заспавнил игрока Nick_Name
Администратор Nick_Name заблокировал чат игрока Nick_Name на time минут. Причина: reason
Администратор: Nick_Name дал поджопник Nick_Name

Администратор: Nick_Name кикнул Nick_Nmae. Причина: reason  -- (mb afk w/o esc)

Администратор: Nick_Name забанил Nick_Name. Причина: reason
Администратор: Nick_Name забанил Nick_Name[SFA/11]. Причина: reason


Администратор: Nick_Name выдал warn Nick_Name. Причина: reason
Администратор: Nick_Name выдал warn Nick_Name[SFA/2]. Причина: reason

Мне нужно их преобразовать к регулярным значениям, что то типо
lua:
if text:find('^Администратор:%s(%w+)%sдал%sподжопник%s(%w+)$') then
Тот пример что я привел выше не работает почему-то, был бы рад если бы вы помогли с этой не простой задачей
 
Решение
Что то типо этого?

lua:
Администратор: Nick_Name кикнул Nick_Name. Причина: reason

Администратор: (%S+) кикнул (%S+). Причина: (.*)
Lua:
local text = 'Администратор: Nick_Name кикнул Nick_Name. Причина: reason'

local admin,nick,reason = text:match('Администратор: (%S+) кикнул (%S+)%. Причина: (.*)')
print(admin,nick,reason)
1702840338697.png

Foriuss

Новичок
Автор темы
26
2
вместо Nick_Name (%S+) (если рядом не указывается [id], то вполне себе подойдет) или ([%w_]+), вместо reason (.*)

и заменять пробелы на %s такое себе удовольствие
Что то типо этого?

lua:
Администратор: Nick_Name кикнул Nick_Name. Причина: reason

Администратор: (%S+) кикнул (%S+). Причина: (.*)
 

chromiusj

Известный
Модератор
5,602
3,909
Что то типо этого?

lua:
Администратор: Nick_Name кикнул Nick_Name. Причина: reason

Администратор: (%S+) кикнул (%S+). Причина: (.*)
Lua:
local text = 'Администратор: Nick_Name кикнул Nick_Name. Причина: reason'

local admin,nick,reason = text:match('Администратор: (%S+) кикнул (%S+)%. Причина: (.*)')
print(admin,nick,reason)
1702840338697.png
 
  • Влюблен
Реакции: Foriuss

Foriuss

Новичок
Автор темы
26
2
Lua:
local text = 'Администратор: Nick_Name кикнул Nick_Name. Причина: reason'

local admin,nick,reason = text:match('Администратор: (%S+) кикнул (%S+)%. Причина: (.*)')
print(admin,nick,reason)
Посмотреть вложение 225016
Спасибо, не мог долго протестить. А что делать с вот такой строкой?

Тут после ника орга и ранг пишется
Администратор: Nick_Name забанил Nick_Name[SFA/11]. Причина: reason
 
У

Удалённый пользователь 532747

Гость
Спасибо, не мог долго протестить. А что делать с вот такой строкой?

Тут после ника орга и ранг пишется
Администратор: Nick_Name забанил Nick_Name[SFA/11]. Причина: reason
Сработает для случая с рангом и без
Lua:
local s = 'Администратор: Nick_Name забанил Nick_Name[SFA/11]. Причина: reason'
local adm, nick, reason = s:match('Администратор: (.-) забанил ([A-Za-z_]*).*%. Причина: (.*)')
 
  • Нравится
Реакции: Foriuss