Я работаю над проектом, который требует добавления аутентификации по паролю с использованием регулярных выражений Perl.
Единственное, что у меня есть, это строковый текстовый блок, представьте что-то вроде этого: https://rubular.com/r/9OZvpmtUpP. И по этой причине я могу поместить туда программный код, но только регулярные выражения [например: ^ abc $] .
Также я могу использовать только один текстовый блок, поэтому мне нужно объединить все выражения в «одну» строку.
Пока я выполнил 2 требования:
- соответствует, если включено не менее 3 типов символов
* +1017 * (((? =. {4}) ((? =. \ г) (? =. [AZ]) (? =. [AZ]) | (? = * тысяча двадцать-один * \ д.) (= [A-Za-Z]?.) (= * тысяча двадцать-три * [\ W _]?.) | (?. = [AZ]) (? =. [AZ]) (? =. [\ W _])). ))
- содержит много (максимум 4) одинаковых символов
(= ^ (:? () ((:.?!?.? \ 1) {4})) $)
и я объединяю их так:
(((?=.{4,})((?=.*\d)(?=.*[a-z])(?=.*[A-Z])|(?=.*\d)(?=.*[a-zA-Z])(?=.*[\W_])|(?=.*[a-z])(?=.*[A-Z])(?=.*[\W_])).*))(?=^(?:(.)(?!(?:.*?\1){4}))*$)
Теперь у меня есть 2 требования. Первый - это прочитать черный список из локального файла (.txt) слов, которые содержат [одна строка одно слово], и не совпадать с ними)
for example : | BadWord
path/myText.txt | TestingWord
have these 3 words | TestingBlacklist
Эти слова не должны входить в пароль
Второе требование заключается в том, что пароль, кроме этих 3-х требований, не должен превышать 2 раза повторения символа
for example : Z@2gmacaiooi*77 Match - 2 times a char reppeated
982iuionjna%$sd Match - 0 times a char reppeated
88asf$$1233ada4 NO MatcH- 3 times a char reppeated
Важно, чтобы регулярное выражение было в этом формате, чтобы я мог сделать соединение в одной строке регулярного выражения. Спасибо