Сообщений: 146
Тем: 43
Зарегистрирован: Jun 2013
Репутация:
59
Приветствую знатоки.
В некоторых сборках есть конфиг на маты и спам в виде
(?iu)\b(мудак|mudak|mydak)
(?iu)\b(о|при|на|по|за|не|до)?(\)\(|х)[е3и]р(ов|н|а\b)
Мб кто работал с Регулярными выражениями и может подсказать, как между буквами запретить символы и пробелы.
Пример:
P_E,D.R.I L. /A W S
Сообщений: 1,317
Тем: 115
Зарегистрирован: Sep 2012
Репутация:
3,925
Valent Написал:Приветствую знатоки.
В некоторых сборках есть конфиг на маты и спам в виде
(?iu)\b(мудак|mudak|mydak)
(?iu)\b(о|при|на|по|за|не|до)?(\)\(|х)[е3и]р(ов|н|а\b)
Мб кто работал с Регулярными выражениями и может подсказать, как между буквами запретить символы и пробелы.
Пример:
P_E,D.R.I L. /A W S
Никак, забудь. Универсальная проверка выйдет тебе в очень большую нагрузку. Запрет пробелов между буквами только в матах так:
(м[ ]*у[ ]*д[ ]*а[ ]*к |итд)
Но имей ввиду, что кроме пробелов могут быть еще другие знаки, так что забудь...
Сообщений: 2,455
Тем: 53
Зарегистрирован: Apr 2010
Репутация:
19,728
В смысле между буквами? А как Вы предлагаете различать, например, слова от букв с пробелами?)
По примеру, Вам наоборот надо учитывать их.
m0nster.art - clear client patches, linkz to utils & code.
Гадаю по капче.
Сообщений: 1,317
Тем: 115
Зарегистрирован: Sep 2012
Репутация:
3,925
Pointer*Rage Написал:В смысле между буквами? А как Вы предлагаете различать, например, слова от букв с пробелами?)
да, он не верно выразился, но смысл был понятен, что именно для слов с матами.
Сообщений: 146
Тем: 43
Зарегистрирован: Jun 2013
Репутация:
59
Pointer*Rage Написал:В смысле между буквами? А как Вы предлагаете различать, например, слова от букв с пробелами?)
По примеру, Вам наоборот надо учитывать их.
Спамеры обычно пишет:
Переходи на Laweo w .s
Слово целиком Laweo я забил и его блочит, а такие варианты как выше с пробелами и символами нет. Можете ли для примера показать как учесть символы и пробелы.
Сообщений: 128
Тем: 0
Зарегистрирован: Feb 2014
Репутация:
625
l\W*a\W*w\W*e\W*o\W*w\W*s
Офигенный, конечно, подход
Уж лучше выкашивать эти самые \W (не буквы/цифры) и проверять, есть ли такое слово (или однокоренное) в словаре.
Сообщений: 2,455
Тем: 53
Зарегистрирован: Apr 2010
Репутация:
19,728
07-27-2015, 04:10 PM
(Сообщение последний раз редактировалось: 07-27-2015, 04:18 PM n3k0nation.)
Valent Написал:Спамеры обычно пишет:
Переходи на Laweo w .s
Слово целиком Laweo я забил и его блочит, а такие варианты как выше с пробелами и символами нет. Можете ли для примера показать как учесть символы и пробелы. Код: [Ll][\W\s]*[Aa][\W\s]*[Vv][\W\s]*[Ee][\W\s]*[Oo]
Не будет корректно работать с русскими словами, а так же не защищает от подмен букв различных языков. Правится легко, пусть будет, как домашнее задание.
Добавлено через 5 минут
shegan Написал:l\W*a\W*w\W*e\W*o\W*w\W*s
Офигенный, конечно, подход
Уж лучше выкашивать эти самые \W (не буквы/цифры) и проверять, есть ли такое слово (или однокоренное) в словаре.
Я почему-то не уверен, что убирание из текста "левых" символов будет быстрее регулярки (тем более, что их можно генерить автоматически, с учетом подмен и т.п., сам же видел у меня). Тем более надо будет делать механизмы разбора уже конкретно СЛОВ, т.к. отличить словосочетание от слова, в котором наставлены пробелы - очень проблематично (на этот случай надо иметь большой такой словарик обычных слов, плюс учитывать, что игроки часто пишут неграмотно, сленговую речь, транслит и т.д.).
m0nster.art - clear client patches, linkz to utils & code.
Гадаю по капче.
Сообщений: 146
Тем: 43
Зарегистрирован: Jun 2013
Репутация:
59
07-27-2015, 04:21 PM
(Сообщение последний раз редактировалось: 07-27-2015, 04:51 PM Valent.)
Pointer*Rage Написал:Код: [Ll][\W\s]*[Aa][\W\s]*[Vv][\W\s]*[Ee][\W\s]*[Oo]
Не будет корректно работать с русскими словами, а так же не защищает от подмен букв различных языков. Правится легко, пусть будет, как домашнее задание.
Добавлено через 5 минут
Я почему-то не уверен, что убирание из текста "левых" символов будет быстрее регулярки (тем более, что их можно генерить автоматически, с учетом подмен и т.п., сам же видел у меня). Тем более надо будет делать механизмы разбора уже конкретно СЛОВ, т.к. отличить словосочетание от слова, в котором наставлены пробелы - очень проблематично (на этот случай надо иметь большой такой словарик обычных слов, плюс учитывать, что игроки часто пишут неграмотно, сленговую речь, транслит и т.д.).
Спасибо, работает. Мне для пару серверов где админы дурачки.
Добавлено через 29 минут
Pointer*Rage Написал:Код: [Ll][\W\s]*[Aa][\W\s]*[Vv][\W\s]*[Ee][\W\s]*[Oo]
Не будет корректно работать с русскими словами, а так же не защищает от подмен букв различных языков. Правится легко, пусть будет, как домашнее задание.
Добавлено через 5 минут
Я почему-то не уверен, что убирание из текста "левых" символов будет быстрее регулярки (тем более, что их можно генерить автоматически, с учетом подмен и т.п., сам же видел у меня). Тем более надо будет делать механизмы разбора уже конкретно СЛОВ, т.к. отличить словосочетание от слова, в котором наставлены пробелы - очень проблематично (на этот случай надо иметь большой такой словарик обычных слов, плюс учитывать, что игроки часто пишут неграмотно, сленговую речь, транслит и т.д.). Домашнее задание
[Aa|Аа][\W\s]*[Vv][\W\s]*[Ee][\W\s]*[Rr][\W\s]*[Ii][\W\s]*[Aa|Аа]
Вроде так)
Сообщений: 2,455
Тем: 53
Зарегистрирован: Apr 2010
Репутация:
19,728
Valent Написал:Спасибо, работает. Мне для пару серверов где админы дурачки.
Добавлено через 29 минут
Домашнее задание
[Aa|Аа][\W\s]*[Vv][\W\s]*[Ee][\W\s]*[Rr][\W\s]*[Ii][\W\s]*[Aa|Аа]
Вроде так)
1. Можно не писать ИЛИ, если указывается рендж.
2. Из коробки \W детектирует не буквы; все языки, кроме английского не считаются за буквы
m0nster.art - clear client patches, linkz to utils & code.
Гадаю по капче.
Сообщений: 146
Тем: 43
Зарегистрирован: Jun 2013
Репутация:
59
Pointer*Rage Написал:1. Можно не писать ИЛИ, если указывается рендж.
2. Из коробки \W детектирует не буквы; все языки, кроме английского не считаются за буквы
Просто если не делать или то без А русского veria не пойдет в блок.
|