Рейтинг темы:
  • 0 Голос(ов) - 0 в среднем
  • 1
  • 2
  • 3
  • 4
  • 5
Регулярные выражения
#1
В общем сижу колдую над регулярными выражениями, и немного
защел в тупик, в общем требуется ваша помощь.
За ранее благодарен за любые варианты, все попробуем, проверим. Smile

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

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

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

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

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

Да, спасибо огромное, хороший варинт.
Но немного так же не до конца рабочий...
Не желает воспринимать символы ^ { } \ _ ~

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

Добавлено через 15 минут
Zubastic Написал:Подскажи, а как указать диапозон, т.е. более красивое и компактное решение?
Ибо так, это индусский код какой-то Smile

Если и есть какие то диапозоны символов типа !@#$%, то я думаю появится проблема
заключающаяся в том что таких символов колличество не малое и не все поддерживаются клиентом, прийдется каким то боком делать не один диапозон а несколько + исключения.
Ответ
#5
MrShyr Написал:Да, спасибо огромное, хороший варинт.
Но немного так же не до конца рабочий...
Не желает воспринимать символы ^ { } \ _ ~

Вариант рабочий, я не знаю где вы пишите, эти символы заэскейпить надо. Насчет русского, если строки юникод, то надо модификатор (?u) заюзать.
Ответ
#6
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 символов не устанавливается ссылаясь на превышенное колличество введенных символов.

При работе с никами такого не происходит.
Ответ
#7
Это скорее к разработчикам Люцеры Smile
Ответ
#8
Zubastic Написал:Это скорее к разработчикам Люцеры Smile

Смешься? Туда обращаться как в потолок плевать...
Ответ
#9
MrShyr, во всяком случае разраб присутствует на форуме и даже активен Smile
Ответ
#10
MrShyr;192863 Написал:не возможно написать более 8 символов?) Английские символы
любые помоему воспринимает, а некоторые ЛЮБЫЕ русские только до 8 символов, не понятно, пишет что
Все очень просто. UTF-8 - это многобайтный символ. mb_ereg() Вам в помощь.

P.S. не знаю как у Вас на яве точно название функции, там сориентируйся.
Ответ


Перейти к форуму:


Пользователи, просматривающие эту тему: 4 Гость(ей)