OriginalGriff
Регулярные выражения могут быть довольно сложными, но это очень просто:
[A-Za-z]{3}
[ ] The square brackets say "any character in this set"
A-Z "Any uppercase character"
or
a-z "Any lowercase character"
{ } The curly brackets say "Repeat the previous item a specific number of times"
3 "Exactly three times"
Таким образом, все регулярное выражение означает "любые три заглавные или строчные буквы"
Если вы хотите поэкспериментировать с регулярными выражениями, получите копию
Экспрессо[
^] - это бесплатно, и он исследует, объясняет и генерирует регулярные выражения.
Есть также несколько очень хороших целых книг по Regeexs:
книга регулярных выражений - поиск в Google[
^] который объяснит детальные сложности намного лучше, чем мы можем в маленьком текстовом поле!
Но... Регулярные выражения-это инструмент, а в данном случае-инструмент сопоставления с образцом. Они должны использоваться в нужном месте, и это для операций сопоставления текста - они не являются хорошей оценкой строки atr. Так что если вам нужно правило пароля типа "минимум семь или более символов", то это нормально:
.{7,}
"Любой персонаж, по крайней мере семь из них".
Но если ваше правило - "минимум семь или более символов, должно включать по крайней мере один верхний регистр, одну цифру и специальный символ", то регулярное выражение-это неправильный инструмент, потому что оно не может "считать" и обрабатывать строку, поэтому регулярное выражение становится ужасно сложным и невозможным для поддержания. Правила паролей должны быть закодированы в реальном коде, возможно, используя несколько регулярных выражений для сбора информации: одно для "сколько прописных букв", одно для "сколько строчных букв", другое для "сколько цифр" и последнее для "сколько специальных символов". Эти числа затем используются кодом для оценки правил.