Кто шарит за регулярные выражения луа, хелп

Diego_Sativa

Известный
Автор темы
575
60
Версия SA-MP
  1. 0.3.7 (R1)
  2. Любая
есть скрипт /pluschat, можно заблокировать строку из чата или вывести в отдельный чат, скрипт поддерживает регулярные выражения
Так вот надо мне вот такую шляпу вывести в отдельный чат:

Marsel_Myps получил(а) бан чата от администратора Ottofon_Bismark. Причина: 1234

Само собой ники и причина всегда разные, в этом и сложность, хелп кто шарит




 
Решение
"^(%S+) получил%(а%) бан чата от администратора (%S+)%. Причина%: (.*)$"

Lua:
--input text:
--text = "Sam_Skott получил(а) бан чата от администратора Glazze_Kynesis. Причина: neadek"
print(text:match("^(%S+) получил%(а%) бан чата от администратора (%S+)%. Причина%: (.*)$"))

--output:
--Sam_Skott    Glazze_Kynesis    neadek

Diego_Sativa

Известный
Автор темы
575
60
(.*) получил%(а%) бан чата от администратора (.*). Причина: (%d+)
Вроде так
Вроди работает, скажи а как сделать что бы допусть если я скопировал и вставил в чат
мой_ник: 123131 получил бы от адм 1234. Причина: 1234, тогда скрипт не отреагировал, а если это системное т.е. не кто то в чат написал то реагировал

(.*) получил%(а%) бан чата от администратора (.*). Причина: (%d+)
(.*) получил%(а%) бан чата от администратора (.*). Причина: (%d+)
Вроде так
А нет бро, не работает что то... Вернее на первую строку срабатывает а вот на вторую нет, почему так?
Marsel_Myps получил(а) бан чата от администратора Ottofon_Bismark. Причина: 1234
Sam_Skott получил(а) бан чата от администратора Glazze_Kynesis. Причина: neadek
 
Последнее редактирование:

meowprd

Тот самый Котовский
Проверенный
1,278
718
"^(%S+) получил%(а%) бан чата от администратора (%S+)%. Причина%: (.*)$"

Lua:
--input text:
--text = "Sam_Skott получил(а) бан чата от администратора Glazze_Kynesis. Причина: neadek"
print(text:match("^(%S+) получил%(а%) бан чата от администратора (%S+)%. Причина%: (.*)$"))

--output:
--Sam_Skott    Glazze_Kynesis    neadek
 

Diego_Sativa

Известный
Автор темы
575
60
"^(%S+) получил%(а%) бан чата от администратора (%S+)%. Причина%: (.*)$"

Lua:
--input text:
--text = "Sam_Skott получил(а) бан чата от администратора Glazze_Kynesis. Причина: neadek"
print(text:match("^(%S+) получил%(а%) бан чата от администратора (%S+)%. Причина%: (.*)$"))

--output:
--Sam_Skott    Glazze_Kynesis    neadek
Если не сложно разжуй что бы я понимал, чем это:
(.*) получил%(а%) бан чата от администратора (.*). Причина: (%d+)
отличается от этого:
(%S+) получил%(а%) бан чата от администратора (%S+)%. Причина%: (.*)

посимвольно объясни пж
 

meowprd

Тот самый Котовский
Проверенный
1,278
718
Если не сложно разжуй что бы я понимал, чем это:
(.*) получил%(а%) бан чата от администратора (.*). Причина: (%d+)
отличается от этого:
(%S+) получил%(а%) бан чата от администратора (%S+)%. Причина%: (.*)

посимвольно объясни пж
всем.
"разжевывать" основы регулярных выражений нет никакого желания.
 
  • Нравится
Реакции: Diego_Sativa