Выражение Java работает, когда оно объявлено непосредственно в коде, но не при загрузке из Spring-инъекции. - PullRequest
0 голосов
/ 22 февраля 2012

Моя проблема в том, что у меня есть выражение, которое оценивает данный пароль пользователя, чтобы убедиться, что он хорошо сделан или нет.Мое выражение выглядит так:

"((?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%]).{6,20})"

Что ж, моя проблема в том, что когда я помещаю эту строку напрямую с помощью метода string.matches (), она работает с паролем, однако, если я помещаю ее в карту, введеннуюSpring как этот

<map>
<entry key="PASSWORD_FILTER_EXPRESSION" value="((?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%]).{6,20})" />
</map>

И используйте его, загружая отсюда, это не работает.Я отлаживал, и, очевидно, он использует одну и ту же строку в обоих местах, где может быть проблема?

1 Ответ

1 голос
/ 22 февраля 2012

Избегайте слешей:

"((?=.*\\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%]).{6,20})"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...