Perl Regex - как использовать localFile (.txt) для сопоставления - PullRequest
0 голосов
/ 18 апреля 2019

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

Единственное, что у меня есть, это строковый текстовый блок, представьте что-то вроде этого: https://rubular.com/r/9OZvpmtUpP. И по этой причине я могу поместить туда программный код, но только регулярные выражения [например: ^ abc $] .

Также я могу использовать только один текстовый блок, поэтому мне нужно объединить все выражения в «одну» строку.

Пока я выполнил 2 требования:

  1. соответствует, если включено не менее 3 типов символов

* +1017 * (((? =. {4}) ((? =. \ г) (? =. [AZ]) (? =. [AZ]) | (? = * тысяча двадцать-один * \ д.) (= [A-Za-Z]?.) (= * тысяча двадцать-три * [\ W _]?.) | (?. = [AZ]) (? =. [AZ]) (? =. [\ W _])). ))

  1. содержит много (максимум 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

Важно, чтобы регулярное выражение было в этом формате, чтобы я мог сделать соединение в одной строке регулярного выражения. Спасибо

1 Ответ

0 голосов
/ 19 апреля 2019
(((?=.{4,})((?=.\d)(?=.[a-z])(?=.[A-Z])|(?=.\d)(?=.[a-zA-Z])(?=.[\W_])|(?=.[a-z])(?=.[A-Z])(?=.[\W_])).))

Я единодушен с Абигайль, просто не имеет смысла если вы цените переставить и аккуратно переписать вашу проблему

... (?=.[a-z])(?=.[A-Z]) ... возможно ли это? ... не так ли (?i) или (?-i) значение по умолчанию и т. Д.

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