-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathRegex_Password_Validation.py
42 lines (36 loc) · 1.36 KB
/
Regex_Password_Validation.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
# Kata link:
# https://www.codewars.com/kata/52e1476c8147a7547a000811
# -------------------------------------
# Instructions:
'''
You need to write regex that will validate a password to make sure it meets the following criteria:
At least six characters long
contains a lowercase letter
contains an uppercase letter
contains a number
Valid passwords will only be alphanumeric characters.
'''
# -------------------------------------
# Solution:
regex="^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])[a-zA-Z\d]{6,}$"
# -------------------------------------
# Basic Tests
from re import search
print(bool(search(regex, 'fjd3IR9')), True)
print(bool(search(regex, 'ghdfj32')), False)
print(bool(search(regex, 'DSJKHD23')), False)
print(bool(search(regex, 'dsF43')), False)
print(bool(search(regex, '4fdg5Fj3')), True)
print(bool(search(regex, 'DHSJdhjsU')), False)
print(bool(search(regex, 'fjd3IR9.;')), False)
print(bool(search(regex, 'fjd3 IR9')), False)
print(bool(search(regex, 'djI38D55')), True)
print(bool(search(regex, 'a2.d412')), False)
print(bool(search(regex, 'JHD5FJ53')), False)
print(bool(search(regex, '!fdjn345')), False)
print(bool(search(regex, 'jfkdfj3j')), False)
print(bool(search(regex, '123')), False)
print(bool(search(regex, 'abc')), False)
print(bool(search(regex, '123abcABC')), True)
print(bool(search(regex, 'ABC123abc')), True)
print(bool(search(regex, 'Password123')), True)