Регулярные выражения - Форум администраторов игровых серверов
Форум администраторов игровых серверов StormWall - Защита от DDos атак
Регистрация Мнения Справка Пользователи Календарь Все разделы прочитаны
Вернуться   Форум администраторов игровых серверов > Разное / Other > Курилка / Yak floor

Курилка / Yak floor
Свободное общение, рассуждения на любые интересные вам темы.

Ответ
Опции темы
Непрочитано 02.06.2012, 22:50   #1
Аватар для MrShyr
Эксперт

Автор темы (Топик Стартер) Регулярные выражения

В общем сижу колдую над регулярными выражениями, и немного
защел в тупик, в общем требуется ваша помощь.
За ранее благодарен за любые варианты, все попробуем, проверим.

Для чего оно нужно:
Скажем просто - Титулы игроков.

Что требуется от регулярного выражения:
Должны быть разрешены все НИЖЕУКАЗАННЫЕ символы
вне зависимости от их размещения в строке, будь они русские,
английские, либо точки, запятые с тильдами и пробелами...
0-9 А-Я а-я A-Z a-z пробел, ну и символы ~,.!@#$%^&*()_+-={}[]:;"'<>?/\|

То есть сделать возможными в правиле надписи типа: ~Пр1веD!o(^^,)o~
с ограничением колличества символов {0,16}

Добавлено через 4 минуты
Есть такой вариант, но увы не дееспособный, так как
требованиям всем не соответствует...
[0-9A-Za-zА-Яа-я -\\[\\]<>\\(\\)\!|]{0,16}

Последний раз редактировалось MrShyr; 02.06.2012 в 22:58. Причина: Добавлено сообщение
MrShyr вне форума Ответить с цитированием
Непрочитано 02.06.2012, 23:54   #2
Олдфаг

По умолчанию Re: Регулярные выражения

Решение "влоп"
Код:
[0-9А-Яа-яA-Za-z\ ~,.!@#$%^&*()_+\-={}[\]:;"'<>?/\|]{0,16}
G1ta0 вне форума Ответить с цитированием
Сказали спасибо:
Непрочитано 02.06.2012, 23:56   #3
Аватар для Zubastic
ZG troll squad

По умолчанию Re: Регулярные выражения

Цитата:
[0-9A-Za-zА-Яа-я -\\[\\]<>\\(\\)\!|]{0,16}
Выделенная штука написана неправильно.
Я конечно только предполагаю но:
0-9 - цифры
A-Z - заглавные
a-z - строчные
~-+ - спец символы по идее
Возможно их просто стоит перечислить, как:
~!@#$%^&*()_+=-
Но я не уверен.

Добавлено через 52 секунды
Цитата:
Сообщение от G1ta0 Посмотреть сообщение
Решение "влоп"
Код:
[0-9А-Яа-яA-Za-z\ ~,.!@#$%^&*()_+\-={}[\]:;"'<>?/\|]{0,16}
Подскажи, а как указать диапозон, т.е. более красивое и компактное решение?
Ибо так, это индусский код какой-то

Последний раз редактировалось Zubastic; 02.06.2012 в 23:57. Причина: Добавлено сообщение
Zubastic вне форума Ответить с цитированием
Непрочитано 03.06.2012, 00:09   #4
Аватар для MrShyr
Эксперт

Автор темы (Топик Стартер) Re: Регулярные выражения

Цитата:
Сообщение от G1ta0 Посмотреть сообщение
Решение "влоп"
Код:
[0-9А-Яа-яA-Za-z\ ~,.!@#$%^&*()_+\-={}[\]:;"'<>?/\|]{0,16}
Да, спасибо огромное, хороший варинт.
Но немного так же не до конца рабочий...
Не желает воспринимать символы ^ { } \ _ ~

И прошу обьяснить знающих, почему к примеру мягкий знак
не возможно написать более 8 символов?) Английские символы
любые помоему воспринимает, а некоторые ЛЮБЫЕ русские только до 8 символов, не понятно, пишет что якобы превышено допустимое колличество символов....
К примеру: Далеко Далеко
Титул не предоставляется возможным написать,
хотя состоит из 13 символов

Добавлено через 15 минут
Цитата:
Сообщение от Zubastic Посмотреть сообщение
Подскажи, а как указать диапозон, т.е. более красивое и компактное решение?
Ибо так, это индусский код какой-то
Если и есть какие то диапозоны символов типа !@#$%, то я думаю появится проблема
заключающаяся в том что таких символов колличество не малое и не все поддерживаются клиентом, прийдется каким то боком делать не один диапозон а несколько + исключения.

Последний раз редактировалось MrShyr; 03.06.2012 в 00:24. Причина: Добавлено сообщение
MrShyr вне форума Ответить с цитированием
Непрочитано 03.06.2012, 00:26   #5
Олдфаг

По умолчанию Re: Регулярные выражения

Цитата:
Сообщение от MrShyr Посмотреть сообщение
Да, спасибо огромное, хороший варинт.
Но немного так же не до конца рабочий...
Не желает воспринимать символы ^ { } \ _ ~
Вариант рабочий, я не знаю где вы пишите, эти символы заэскейпить надо. Насчет русского, если строки юникод, то надо модификатор (?u) заюзать.
G1ta0 вне форума Ответить с цитированием
Сказали спасибо:
Непрочитано 03.06.2012, 00:35   #6
Аватар для MrShyr
Эксперт

Автор темы (Топик Стартер) Re: Регулярные выражения

Цитата:
Сообщение от G1ta0 Посмотреть сообщение
Вариант рабочий, я не знаю где вы пишите, эти символы заэскейпить надо. Насчет русского, если строки юникод, то надо модификатор (?u) заюзать.
Дело в том что к примеру при работе с никами, практически во всех
сборочках действуют правила:

([0-9A-Za-z]{2,16})|([0-9\u0410-\u044f]{2,16})*

В которых как раз таки русские символы указываются юникодом.
А вот в люцере, как в люцере...

[0-9A-Za-z]{3,16}|[0-9А-Яа-я]{3,16}

Но при работе с никами, русские символы набиваются
в правильном колличестве 16=16

А при работе с титулами... 8=16 непонятно...

Добавлено через 4 минуты
Титул с английскими буквами:
AAAAAAAAAAAAAAAA -16 символов устанавливается отлично.
Титул с русскими буквами:
АААААААААААААААА -16 символов не устанавливается ссылаясь на превышенное колличество введенных символов.

При работе с никами такого не происходит.

Последний раз редактировалось MrShyr; 03.06.2012 в 00:39. Причина: Добавлено сообщение
MrShyr вне форума Ответить с цитированием
Непрочитано 03.06.2012, 00:50   #7
Аватар для Zubastic
ZG troll squad

По умолчанию Re: Регулярные выражения

Это скорее к разработчикам Люцеры
Zubastic вне форума Ответить с цитированием
Непрочитано 03.06.2012, 00:51   #8
Аватар для MrShyr
Эксперт

Автор темы (Топик Стартер) Re: Регулярные выражения

Цитата:
Сообщение от Zubastic Посмотреть сообщение
Это скорее к разработчикам Люцеры
Смешься? Туда обращаться как в потолок плевать...
MrShyr вне форума Ответить с цитированием
Непрочитано 03.06.2012, 01:36   #9
Супергерой

По умолчанию Re: Регулярные выражения

MrShyr, во всяком случае разраб присутствует на форуме и даже активен
Romka вне форума Ответить с цитированием
Непрочитано 03.06.2012, 06:20   #10
Изгнанные

По умолчанию Re: Регулярные выражения

Цитата:
Сообщение от MrShyr Посмотреть сообщение
не возможно написать более 8 символов?) Английские символы
любые помоему воспринимает, а некоторые ЛЮБЫЕ русские только до 8 символов, не понятно, пишет что
Все очень просто. UTF-8 - это многобайтный символ. mb_ereg() Вам в помощь.

P.S. не знаю как у Вас на яве точно название функции, там сориентируйся.
Gambit_J вне форума Отправить сообщение для Gambit_J с помощью ICQ Отправить сообщение для Gambit_J с помощью Skype™ Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


© 2007–2024 «Форум администраторов игровых серверов»
Защита сайта от DDoS атак — StormWall
Работает на Булке неизвестной версии с переводом от zCarot
Текущее время: 09:24. Часовой пояс GMT +3.

Вверх