Regex Java Несоответствие - PullRequest
0 голосов
/ 28 марта 2012

Мне нужно подтвердить пароль с помощью reqex. Я написал один и проверил его в этой программе проверки, и он работает: http://www.nvcc.edu/home/drodgers/ceu/resources/test_regexp.asp

Но когда я добавляю его в свое Java-приложение, происходит сбой.

Регулярное выражение в средстве проверки регулярных выражений: (\ D +) (\ d +) (\ D +) (. *)

Регулярное выражение в Java: (\\ D +) (\\ d +) (\\ D +) (. *)

Тестовая строка: 1Hello2

Это проходит онлайн-проверку, но не работает в Java.

Кто-нибудь знает почему?

Я хочу, чтобы регулярное выражение совпадало с любым паролем, в середине которого есть число (может иметь их в начале и в конце).

Мне нужно 2 отдельных регулярных выражения: одно, которое соответствует цифрам в середине (pass1word или 1pass1word или 1pass1word), а также регулярное выражение, которое соответствует цифре в начале или конце (1password или password1, НЕ pass1word1, потому что это в категории строк) .

1 Ответ

2 голосов
/ 28 марта 2012

Ваше регулярное выражение требует:

  1. не цифра (1 или более раз) \ D +
  2. 1 или более цифр
  3. Одна или несколько не цифр \ D +
  4. Любые символы 0 или более раз.

Ваш пример содержит

  1. 1 цифра
  2. 5 не цифр
  3. 1 цифра

Я думаю, очевидно, что он не соответствует регулярному выражению: первый элемент \ D + завершается ошибкой, потому что цифра появляется в начале.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...