我正在一个需要使用Perl正则表达式添加一些密码验证的项目。
我唯一拥有的是一个行文本块,想象一下这样的事情:https://rubular.com/r/9OZvpmtUpP。因此,我可以将编程代码放在此处,但只能使用正则表达式 [例如:^ abc $] 。
我也只能使用一个文本块,因此我必须在“一行”中组合所有表达式。
到目前为止,我完成了2个要求:
((((?=。{4,})((?=。 \ d)(?=。 [az])(?=。 [AZ ])|(?=。 \ d)(?=。 [a-zA-Z])(?=。 [\ W _])|(?=。 [az])(?=。 [AZ])(?=。 [\ W _]))。))
(?= ^(?:(。)(?!(?:。?\ 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
重要的是正则表达式采用这种格式,这样我就可以在一个正则表达式行中进行联接。谢谢
答案 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)
默认区分大小写等吗?