Perl正则表达式-如何使用localFile(.txt)进行匹配

时间:2019-04-18 13:35:27

标签: regex perl authentication blacklist

我正在一个需要使用Perl正则表达式添加一些密码验证的项目。

我唯一拥有的是一个行文本块,想象一下这样的事情:https://rubular.com/r/9OZvpmtUpP。因此,我可以将编程代码放在此处,但只能使用正则表达式 [例如:^ abc $]

我也只能使用一个文本块,因此我必须在“一行”中组合所有表达式。

到目前为止,我完成了2个要求:

  1. 如果包含至少三种字符,则匹配

((((?=。{4,})((?=。 \ d)(?=。 [az])(?=。 [AZ ])|(?=。 \ d)(?=。 [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 :(得分:0)

(((?=.{4,})((?=.\d)(?=.[a-z])(?=.[A-Z])|(?=.\d)(?=.[a-zA-Z])(?=.[\W_])|(?=.[a-z])(?=.[A-Z])(?=.[\W_])).))

我对阿比盖尔(Abigail)有主见,根本没道理 如果您欣赏重新排列并整齐地重写问题

... (?=.[a-z])(?=.[A-Z]) ...可能吗?... (?i)(?-i)默认区分大小写等吗?