Skip to content

Commit 360e82e

Browse files
committed
mouredev#16 - Python
1 parent f244684 commit 360e82e

File tree

1 file changed

+80
-0
lines changed

1 file changed

+80
-0
lines changed
Lines changed: 80 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
1+
"""
2+
Expresiones reguales
3+
"""
4+
5+
#Expresiones regulares (regex) son patrones de búsqueda que se usan para validar, buscar o reemplazar texto en cadenas. Se componen de caracteres normales y especiales.
6+
7+
# Importa el módulo 're' que permite trabajar con expresiones regulares en Python
8+
import re
9+
10+
# Define una función llamada 'find_number' que recibe un parámetro 'text' de tipo string y devuelve una lista
11+
def find_number(text: str) -> list:
12+
# Utiliza 're.findall' para buscar todas las secuencias de uno o más dígitos (\d+)
13+
# en el texto recibido. Retorna una lista con todas las coincidencias encontradas.
14+
return re.findall(r"\d+", text) #tambien se puede usar r"[0-9]+, text
15+
16+
# Llama a la función 'find_number' con un texto de ejemplo y muestra en pantalla la lista de números encontrados
17+
print(find_number("Este es el ejercicio 16 publicado 15/04/24"))
18+
19+
""" * DIFICULTAD EXTRA (opcional):
20+
* Crea 3 expresiones regulares (a tu criterio) capaces de:
21+
22+
23+
* - Validar un email."""
24+
25+
26+
# Retorna True si 'email' coincide con el patrón:
27+
# - ^ Indica el inicio de la cadena.
28+
# - Empieza con letras/números/_.+-
29+
# - Sigue un @
30+
# - Dominio con letras/números/_
31+
# - Un punto
32+
# - Y termina con al menos dos letras
33+
# - $ Indica el final de la cadena.
34+
def validate_email(email: str)-> bool:
35+
return bool(re.match(r"^[\w+.-]+@[\w]+\.[a-zA-Z]{2,}$", email))
36+
37+
38+
print(validate_email("Complex-_+.@gmail.com"))
39+
40+
41+
""" - Validar un número de teléfono."""
42+
43+
44+
def validate_phone(phone: str)-> bool:
45+
return bool(re.match(r"^(\+1[\s-])?[\d\s-]{3,12}$", phone))
46+
47+
# ^\+1 → debe empezar con +1
48+
#"?" Hace que el elemento anterior sea opcional: Es decir, puede aparecer una vez o no aparecer.
49+
# [\s-]? → espacio o guion opcional después de +1
50+
# [\d\s-]{3,12} → luego entre 3 y 12 caracteres que sean dígitos, espacios o guiones
51+
# $ → final de cadena
52+
53+
54+
print(validate_phone("+1 809 019 1092"))
55+
56+
57+
58+
59+
60+
"""- Validar una url."""
61+
62+
def validate_url(url: str)-> bool:
63+
# Usa re.match para verificar si la URL cumple con el patrón.
64+
# Si coincide, devuelve True, si no, False.
65+
return bool(re.match(r"^http[s]?://(www.)?[\w]+\.[a-zA-Z]{2,}$", url))
66+
67+
# ^ Inicio de la cadena
68+
# http[s]?:// Debe empezar con http:// o https:// (s es opcional por [s]?)
69+
# (www.)? Opcionalmente permite www. justo después (el ? lo hace opcional)
70+
# [\w]+ Uno o más caracteres alfanuméricos o guion bajo (\w equivale a [a-zA-Z0-9_])
71+
# \. Un punto literal .
72+
# [a-zA-Z]{2,} Dos o más letras (la extensión, como com, net, io)
73+
# $ Fin de la cadena
74+
75+
76+
77+
print(validate_url("http://Complex01_.com"))
78+
79+
80+
#pagina web para evaluar codigo de expresiones reguales: https://regex101.com/

0 commit comments

Comments
 (0)