Removendo caracteres não numéricos de uma string (Python)

Sua aplicação recebe uma string que possui um número, mas a forma da string pode variar. Neste post, mostro como extrair apenas a parte numérica da string.

A primeira coisa que vamos precisar é de realizar uma importação:

 

Agora é só utilizar uma expressão regular para resolver o problema. Qualquer uma das duas tem o mesmo efeito:

  1. “[^0-9]”
  2. “\D”

Lembre-se que regex é case sensitive. \d é diferente de \D!

 

Aplicando o regex:

O que o código acima faz:

  1. Definimos a variável com o texto que vamos analisar;
  2. Definimos a expressão regular;
  3. Extraímos uma string que contém apenas números;
  4. Convertemos esta string em integer;
  5. Exibimos o resultado;

 

Existe um ponto de atenção para esta abordagem: Se a sua string possuir mais de 1 grupo de números, o regex vai retornar uma string com todos eles.

Por exemplo, a string “o número 123 é aleatório, mas quero preciso do número 99”, quando processada pelo regex acima, irá retornar: “12399”.

 

Você pode elaborar a sintaxe da expressão regular, de forma que ela retorne apenas a string com os números que você quer, mas isso vai depender de cada caso.

 

Espero ter ajudado.

The following two tabs change content below.
Breno RdV
Ex-Psicólogo, com quase uma década de experiência em Recursos Humanos e Gestão de Pessoas, atual desenvolvedor e Analista de Sistemas, trabalhando com PowerBuilder, C#, PowerShell e expandindo horizontes para Python, Xamarin, PHP, Angular e (por que não?) Unity.

Comments

comments

Posted in Dev, Python and tagged , , , .