Solución al Ejercicio: Extraer números enteros
📋 Copiar código
import re
def extraer_numeros_enteros(texto):
"""
Extrae todos los números enteros de una cadena de texto.
Args:
texto: La cadena de texto de entrada.
Returns:
Una lista de todos los números enteros encontrados (como cadenas).
"""
patron = re.compile(r'\b\d+\b')
numeros = patron.findall(texto)
return numeros
# Ejemplos de uso
texto1 = "Hay 3 manzanas y 10 naranjas."
resultado1 = extraer_numeros_enteros(texto1)
print(f"Números enteros en '{texto1}': {resultado1}")
texto2 = "El año es 2023."
resultado2 = extraer_numeros_enteros(texto2)
print(f"Números enteros en '{texto2}': {resultado2}")
texto3 = "Números negativos como -5 no se extraen."
resultado3 = extraer_numeros_enteros(texto3)
print(f"Números enteros en '{texto3}': {resultado3}")
texto4 = "Decimales como 3.14 tampoco."
resultado4 = extraer_numeros_enteros(texto4)
print(f"Números enteros en '{texto4}': {resultado4}")
texto5 = "Múltiples números: 1 22 333."
resultado5 = extraer_numeros_enteros(texto5)
print(f"Números enteros en '{texto5}': {resultado5}")
texto6 = "Sin números aquí."
resultado6 = extraer_numeros_enteros(texto6)
print(f"Números enteros en '{texto6}': {resultado6}")
texto7 = ""
resultado7 = extraer_numeros_enteros(texto7)
print(f"Números enteros en '': {resultado7}")
Explicación del Código:
-
import re
:
- Importa el módulo
re
para
trabajar con expresiones regulares.
-
def
extraer_numeros_enteros(texto):
:
- Define una función llamada
extraer_numeros_enteros
que toma una cadena de texto (texto
)
como entrada.
-
patron = re.compile(r'\b\d+\b')
:
- Compila una expresión regular para buscar
números enteros:
\b
: Coincide con un
límite de palabra (asegurando que el número no esté pegado a
letras).
\d+
: Coincide con uno
o más dígitos (0-9).
\b
: Coincide con otro
límite de palabra.
- Este patrón busca secuencias
completas de uno o más dígitos que estén delimitadas por no-dígitos
o los límites de la cadena.
-
numeros = patron.findall(texto)
:
- Utiliza el método
findall()
del objeto de expresión regular para encontrar todas las coincidencias
del patrón en la cadena texto
.
findall()
devuelve una lista
de todas las subcadenas que coinciden con el patrón.
-
return numeros
:
- Devuelve la lista
numeros
que contiene todos los números enteros encontrados en el texto (como
cadenas de texto).
Ejemplos de Uso:
Los ejemplos muestran cómo la función extrae los
números enteros de diferentes cadenas de texto. Se observa que no extrae números
negativos ni números con decimales, ya que el patrón \d+
solo busca
uno o más dígitos.