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

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:

  1. “[^0-9]”
  2. “\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:

  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.