Правила форума Гаранты форума
Размещение рекламы AMX-X компилятор

Здравствуйте, гость Вход | Регистрация

Наши новости:

14-дек
24-апр
10-апр
11-апр

Регулярка.

, Скорее mysql, хотя любой вариант подойдет.
Статус пользователя oxoTHuk.
сообщение 13.1.2015, 8:18
Сообщение #1


Иконка группы

Стаж: 17 лет

Сообщений: 879
Благодарностей: 515
Полезность: 867

Всем привет, ситуация такая, стоит AES с сохранением в БД, примерно за месяц 50к записей, что не есть хорошо.
Дабы сократить и причесать статистику (сохранение по STEAM_ID), планирую повесить на таблицу триггер, чтобы когда добавлялась новая запись, парарельно удалялись все игроки со стандартными никами (Player, Strikers etc.), ники, состоящие только из цифр, и ники короче трех символов.
Да, я понимаю что лучше сделать это на уровне АМХХ, но суть остается в регулярке. Написал все, кроме ников короче трех символов:
Код:
DELETE FROM `aes_stats` WHERE  
`name` LIKE '%Player%' OR
`name` LIKE '%iMonster%' OR
`name` LIKE '%Strikes%' OR
`name` LIKE '%unnamed%' OR
`name` LIKE '%[All-CS.Net.Ru] User%' OR
`name` LIKE '%[HDmonitor.ru]^User%' OR
`name` LIKE '%[16cs-client.ru] SkyNet 2014%' OR
`name` LIKE '%[16cs-client.ru] Extended%' OR
`name` LIKE '%[BM] Pro Gamer%' OR
`name` LIKE '%[BM] Pro Gamer%' OR
`name` REGEXP '^[0-9]+$' OR
`name` REGEXP '^{,3}+$'

Все работает кроме последней строки, понять почему - не могу =) Выручайте, всегда ненавидел регулярки =)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
voed
сообщение 13.1.2015, 8:52
Сообщение #2
Стаж: 11 лет

Сообщений: 2593
Благодарностей: 1760
Полезность: 405

Юзай https://regex101.com/ для проверки регулярок, весьма удобно. Что должно делать последнее выражение? Удалять ники короче 3 символов? Если да, то наверное надо так ^.{0,3}+$
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя oxoTHuk.
сообщение 13.1.2015, 9:14
Сообщение #3


Иконка группы

Стаж: 17 лет

Сообщений: 879
Благодарностей: 515
Полезность: 867

voed, да, сайт видел, ну мне проще было тестировать все прямо в БД запросами.
Попробовал твой вариант на сайте - норм, в БД ругается так: Got error 'repetition-operator operand invalid' from regexp
Пойду общаться с гуглом, за регулярку спасибо =)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя oxoTHuk.
сообщение 13.1.2015, 9:44
Сообщение #4


Иконка группы

Стаж: 17 лет

Сообщений: 879
Благодарностей: 515
Полезность: 867

upd: может кому пригодится:
Код:
DELETE FROM `aes_stats` WHERE  
`name` LIKE '%Player%' OR
`name` LIKE '%iMonster%' OR
`name` LIKE '%Strikes%' OR
`name` LIKE '%unnamed%' OR
`name` LIKE '%[All-CS.Net.Ru] User%' OR
`name` LIKE '%[HDmonitor.ru]^User%' OR
`name` LIKE '%[16cs-client.ru] SkyNet 2014%' OR
`name` LIKE '%[16cs-client.ru] Extended%' OR
`name` LIKE '%[BM] Pro Gamer%' OR
`name` LIKE '%[BM] Pro Gamer%' OR
`name` REGEXP '^[0-9]+$' OR
`name` REGEXP '^.{0,3}$'
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя oxoTHuk.
сообщение 13.1.2015, 10:18
Сообщение #5


Иконка группы

Стаж: 17 лет

Сообщений: 879
Благодарностей: 515
Полезность: 867

Код:
DROP TRIGGER IF EXISTS `delete_spam`//
CREATE TRIGGER `delete_spam` AFTER INSERT ON `aes_stats`
FOR EACH ROW BEGIN
DELETE FROM `aes_stats` WHERE
`name` LIKE '%Player%' OR
`name` LIKE '%iMonster%' OR
`name` LIKE '%Strikes%' OR
`name` LIKE '%unnamed%' OR
`name` LIKE '%[All-CS.Net.Ru] User%' OR
`name` LIKE '%[HDmonitor.ru]^User%' OR
`name` LIKE '%[16cs-client.ru] SkyNet 2014%' OR
`name` LIKE '%[16cs-client.ru] Extended%' OR
`name` LIKE '%[BM] Pro Gamer%' OR
`name` LIKE '%[BM] Pro Gamer%' OR
`name` REGEXP '^[0-9]+$' OR
`name` REGEXP '^.{0,3}$';
END

Сам триггер, если кому-то нужен =)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 2 раз
   + Цитировать сообщение
Статус пользователя oxoTHuk.
сообщение 17.1.2015, 12:56
Сообщение #6


Иконка группы

Стаж: 17 лет

Сообщений: 879
Благодарностей: 515
Полезность: 867

Ребят, прошу прощения, триггер нерабочий, пока не используйте, у меня вообще беда с отображением рангов стала, как разберусь, создам отдельную тему.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
  Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: