Baixe a apostila Python Progressivo
Certificado do curso (para trabalhar como programador profissional)
Grupos em Regex: ( )
Agora vamos um pouquinho mais além, e trabalhar com números que usam também o DDD.
Esses números de telefone, tem o seguinte padrão:
xx yyyy-zzzz
Uma regex que capta esse padrão, seria:
- '\d\d \d\d\d\d-\d\d\d\d'
Mais concisamente:
- '\d{2} \d{4}-\d{4}'
Note que tem 4 coisas aí: o DDD, o primeiro bloco de dígitos (que geralmente você descobre a operadora por ele) e o último bloco.
Vamos organizar esses blocos em grupos. Para isso, colocamos eles entre parêntesis:
- '(\d{2}) (\d{4})-(\d{4})'
Como Usar os Grupos em Regex: group()
Tenha uma coisa em mente: os parêntesis não vão alterar sua regex. Ou seja, não precisa ter parêntesis ao redor dos números em sua string, pra dar match.Então para que serve? É simples: podemos acessar diretamente cada grupo depois, pelo método group.
Ao dar match, o primeiro grupo poderá ser acessado pelo método: group(1)
O segundo grupo é acessado por: group(2)
E o terceiro por: group(3)
O código abaixo detecta um número de telefone no formato: xx yyyy-zzzz e mostra, separadamente, o DDD desse número:
import re while True: texto = input("Digite sua string: " ) minhaRegex = re.compile(r'(\d{2}) (\d{4})-(\d{4})') resultado = minhaRegex.search(texto) print("Numero detectado:", resultado.group()) print("DDD desse numero:", resultado.group(1))
O método group sem argumento algum, já havíamos utilizado: ele mostra tudo, toda a regex que bateu. Usamos ele pra exibir o número inteiro do telefone, em seguida usamos o primeiro grupo, via group(1), para exibir somente o DDD.
Prontinho, além de termos extraído o número de telefone, fomos mais além e ainda detectamos que trecho é o de DDD, agora você pode extrair milhões de números de um arquivo de texto, site, documento etc, e ainda categorizar, dizer quantos são de cada cidade, tratando o DDD.
Se desejar uma tupla, ou seja, uma lista com todos os grupos que foram detectados, use o método groups() (sem argumento nenhum), que você vai ter a tupla separada bonitinha, separando os grupos de maneira organizada.
Nenhum comentário:
Postar um comentário