2014-02-03 3 views
-6
((?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{10,}) 

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

+6

Вы пробовали [документацию Python для модуля 're'] (http://docs.python.org/2/library/re.html)? – lanzz

+2

Это «положительное утверждение». http://www.regular-expressions.info/lookaround.html – MElliott

+0

Почему у этого есть 4 голоса?!?! Нет ничего плохого в этом? – Srb1313711

ответ

2

?= - это утверждение «вперед». Он проверяет, что совпадение неизбежно, но не использует символы из совпадения.

Трудно найти синтаксис, подобный '? =' В Google. В Python re module documentation найдите страницу для текста '? =', Чтобы найти более подробную информацию и посмотреть аналогичный синтаксис для других видов использования '?'.

+0

Я читал, но что означает фраза «потреблять charecters» из матча? – user3126404

+0

@user Чтобы «использовать символы» означает, что вы можете сопоставить полную строку, но только вернуть часть ее, которая вас интересует. Например, вы можете найти имя любого, чья фамилия Смит: ([A..Za..z] + (? = Smith)) соответствует «John Smith» и потребляет строку «John». Это не похоже на «Джон Джонс». Для матча требуется (? = Смит), но пользователь не заинтересован в его возврате. – Kevin

Смежные вопросы