Exercício de RegEx #3: Encontre os números

Published by Alessandro Manicone in

Escreva cinco expressões regulares:

  • Uma chamada integers que corresponda a todos os números inteiros, positivos ou negativos.
  • Uma chamada floats que corresponda a todos os números decimais, positivos ou negativos.
  • Uma chamada positive que corresponda a todos os números positivos, inteiros ou decimais.
  • Uma chamada negative que corresponda a todos os números negativos, inteiros ou decimais.
  • Uma chamada numbers que corresponda a todos os números, inteiros ou decimais, positivos ou negativos.

Detalhes a serem considerados:

  • As frações de 1 podem ou não ser precedidas por um 0. 0.5, .5 e -.5 são números válidos.
  • Os números decimais terão pelo menos um dígito decimal. Tanto 4. quanto -3. não são números válidos.
  • Os números positivos podem ou não ser precedidos por um +. Tanto 3 quanto +3 são números válidos.
  • Números precedidos por mais de um símbolo ou que tenham mais de um ponto decimal não são considerados válidos. ++1, -+4 e 3.3.6 não são números válidos.
  • Todos os números, válidos ou não, serão precedidos e seguidos por um espaço em branco.

Exemplo

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"]

Observações

  • Você não precisa escrever uma função, apenas o padrão.
  • Não remova import re do código.
  • Se ficar travado, confira os Comentários para obter algumas dicas úteis.
  • Encontre mais informações sobre RegEx em Recursos.
  • Você pode encontrar todos os desafios desta série na minha coleção Basic RegEx.