Ejercicio de RegEx #3: Encuentra los números

Published by Alessandro Manicone in

Escribe cinco expresiones regulares:

  • Una llamada integers que coincida con todos los números enteros, positivos o negativos.
  • Una llamada floats que coincida con todos los números decimales, positivos o negativos.
  • Una llamada positive que coincida con todos los números positivos, enteros o decimales.
  • Una llamada negative que coincida con todos los números negativos, enteros o decimales.
  • Una llamada numbers que coincida con todos los números, enteros o decimales, positivos o negativos.

Detalles que debes tener en cuenta:

  • Las fracciones de 1 pueden estar precedidas o no por un 0. Todos 0.5, .5 y -.5 son números válidos.
  • Los números decimales tendrán al menos un dígito decimal. Tanto 4. como -3. no son números válidos.
  • Los números positivos pueden estar precedidos o no por un +. Tanto 3 como +3 son números válidos.
  • Los números precedidos por más de un símbolo o que tengan más de un punto decimal no se consideran válidos. ++1, -+4 y 3.3.6 no son números válidos.
  • Todos los números, válidos o no, estarán precedidos y seguidos por un espacio en blanco.

Ejemplo

txt = " 123.456 2 +7 -88 -.25 9.10.11 -4. +-34 -0.6 --5 "
integers = "yourregularexpressionhere"
floats = "yourregularexpressionhere"
positive = "yourregularexpressionhere"
negative = "yourregularexpressionhere"
numbers = "yourregularexpressionhere"

re.findall(integers, txt) ➞ ["2", "+7", "-88"]
re.findall(floats, txt) ➞ ["123.456", "-.25", "-0.6"]
re.findall(positive, txt) ➞ ["123.456", "2", "+7"]
re.findall(negative, txt) ➞ ["-88", "-.25", "-0.6"]
re.findall(numbers, txt) ➞ ["123.456", "2", "+7", "-88", "-.25", "-0.6"]

Notas

  • No necesitas escribir una función, solo el patrón.
  • No elimines import re del código.
  • Si te atascas, revisa Comentarios para encontrar algunas pistas útiles.
  • Encuentra más información sobre RegEx en Recursos.
  • Puedes encontrar todos los desafíos de esta serie en mi colección Basic RegEx.