Removendo caracteres não numéricos de uma string (Python)
Overview
Bem-vindo a um guia rápido e eficiente para todos que buscam simplificar sua vida de programador! Hoje, vamos mergulhar no mundo do Python para desvendar o mistério de como extrair partes numéricas de uma string. Se você já se deparou com a necessidade de isolar números de um emaranhado de caracteres, este post foi feito para você. Através de um passo a passo detalhado e com um toque de humor, aprenda a usar expressões regulares sem complicações. Então, prepare-se para transformar seus problemas de strings numéricas em uma solução simples e prática.
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:
import re
Agora é só utilizar uma expressão regular para resolver o problema. Qualquer uma das duas tem o mesmo efeito:
- “[^0-9]”
- “\D”
Lembre-se que regex é case sensitive. \d é diferente de \D!
Aplicando o regex:
text = "Out of range value for column 'COL_DA_TABELA' at row 45"
regex_syntax = r"\D"
num_str = re.sub(regex_syntax, "", text)
num = int(num_str)
print(num, type(num))
O que o código acima faz:
- Definimos a variável com o texto que vamos analisar;
- Definimos a expressão regular;
- Extraímos uma string que contém apenas números;
- Convertemos esta string em integer;
- 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.