es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Expresión regular para extraer múltiples números decimales:

Tengo el siguiente grupo de números:

VentasCosto% Margen
2,836,433.182,201,355.6422.39

Resultado esperado:

Quiero separar esto y extraer los números de manera que obtenga el resultado mostrado a continuación:

2,836,433.18
2,201,355.64
22.39

Intento

Intenté el regex (\d+)(?:\.(\d{1,2}))? pero esto solo extrae el número hasta el primer decimal, es decir, solo obtengo 2,836,433.18.

Pregunta

¿Hay alguna manera de extraer los números utilizando Regex (o alternativamente de alguna manera a través de Python) para obtener los resultados mostrados anteriormente?

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Sí, hay una forma de extraer los números como se muestra arriba utilizando regex y python. Aquí tienes un ejemplo de código usando python y regex:

    import re
    
    texto = "2,836,433.182,201,355.6422.39"
    
    # usa regex para encontrar todos los números
    coincidencias = re.findall(r"\d{1,3}(?:,\d{3})*(?:\.\d{1,2})?", texto)
    
    # imprime las coincidencias
    print(coincidencias)
    

    Resultado:

    ['2,836,433.18', '2,201,355.64', '22.39']
    

    La regex r"\d{1,3}(?:,\d{3})*(?:\.\d{1,2})?" coincide con cualquier número con comas opcionales en el lugar de los miles y decimales opcionales hasta dos dígitos.

    Usamos la función findall del módulo re para encontrar todas las coincidencias en el texto. El resultado es una lista de cadenas que contienen los números encontrados.

    ¡Espero que esto te sea útil!

Comments are closed.