Skip to content

Commit 6a49103

Browse files
committed
reto #16 - python
1 parent ee9436c commit 6a49103

File tree

1 file changed

+14
-4
lines changed

1 file changed

+14
-4
lines changed

Roadmap/16 - EXPRESIONES REGULARES/python/KevinED11.py

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -28,11 +28,21 @@ def __call__(self, value: str) -> bool: ...
2828

2929

3030
class ValidationPattern(StrEnum):
31+
pass
32+
33+
34+
class EmailValidationPattern(ValidationPattern):
3135
EMAIL = r"^\w+@\w+\.\w+$"
3236
EMAIL2 = r"^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$"
3337
EMAIL3 = r"(^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$)"
38+
39+
40+
class PhoneValidationPattern(ValidationPattern):
3441
PHONE = r"^\+?\d{10, 15}$"
3542
PHONE2 = r"^\+?1?\d{9,15}$"
43+
44+
45+
class UrlValidationPattern(ValidationPattern):
3646
URL = r"^https?://.+$"
3747
URL2 = r"^(http|https)://[a-zA-Z0-9-\.].+\.[a-zA-Z]{2,4}(/\S*)?$"
3848

@@ -42,9 +52,9 @@ def generic_validator(pattern: ValidationPattern, value: str) -> bool:
4252
return re.match(pattern, value) is not None
4353

4454

45-
validate_email = partial(generic_validator, pattern=ValidationPattern.EMAIL)
46-
validate_phone = partial(generic_validator, pattern=ValidationPattern.PHONE)
47-
validate_url = partial(generic_validator, pattern=ValidationPattern.URL2)
55+
validate_email = partial(generic_validator, pattern=EmailValidationPattern.EMAIL)
56+
validate_phone = partial(generic_validator, pattern=PhoneValidationPattern.PHONE)
57+
validate_url = partial(generic_validator, pattern=UrlValidationPattern.URL2)
4858

4959

5060
def execute_validator(validator: ValidatorFn, value: str) -> bool:
@@ -63,7 +73,7 @@ def main() -> None:
6373
email_result = execute_validator(validator=validate_email, value="a@a.com")
6474
phone_result = execute_validator(validator=validate_phone, value="000000000000")
6575
url_result = execute_validator(
66-
validator=validate_url, value="https://www.google.com"
76+
validator=validate_url, value="https://wwwgoogle.com"
6777
)
6878
print(email_result, phone_result, url_result, sep=Separator.LINE_BREAK)
6979

0 commit comments

Comments
 (0)