yogev_ezra
@yogev_ezra

Помогите правильно составить регулярное выражение для org.apache.regexp.re

Добрый день!

Поступило задание — задать требования к паролю в web-аппликации. Требования задаются через regular expression. Код от самой web-application у меня есть, но изменять его я не могу. Поле для регулярного выражения одно и проверка происходит один раз, то есть нельзя сделать проверку на одно выражение, а потом на другое. При просмотре кода, выяснилось что класс, используемый этой программой для regular expression: org.apache.regexp.RE

Требования аналогичны этим forums.asp.net/t/918584.aspx/2/10
1) 6-10 characters
2) At least one alpha AND one number
3) The following special chars are allowed (0 or more): !@#$%

Мучаюсь уже несколько дней — никак не могу правильно составить выражение. В линке на пример, который я привёл, используется lookahead ('?=' ) — но поиск в Гугле "lookahead org.apache.regexp.RE" ничего вменяемого не возвращает, а поиск "org.apache.regexp.RE at least one letter and digit" — вообще ничего не возвращает. При копировании примера как есть, web-application отвечает, что регулярное выражение неверное. Можно, конечно, составить его методом перебора всех возможных вариантов, но тогда оно будет очень длинное и не влезет в таблицу SQL, где оно должно храниться.

Возможно ли вообще то, что у меня попросили? Или надо сказать разработчикам web-application (это другой отдел в нашей фирме) использовать другой класс? Заранее спасибо за ответы и советы!
  • Вопрос задан
  • 4039 просмотров
Решения вопроса 1
kentilini
@kentilini
В продакшн
в описанном вами примере используются опережающие и ретроспективные проверки.
lookahead org.apache.regexp.RE — их не поддерживает, нужно писать регулярку обходя это условие.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы