Expressões Regulares (Regx) na linguagem Python
Fala Dev beleza, neste post quero falar um pouco a cerca das Expressões Regulares, basicamente sobre o que são, para que servem, e vou trazer ao longo deste New também programa que verifica se o Email digitado é valido ou não, usando o conceito das Expressões Regulares, de lembrar que é voltado a linguagem Python.
Oh de lembrar que o conteúdo que vou aqui explicar, está disponível no meu canal de Youtube: https://www.youtube.com/@setprogramacao, para você que deseja ver, e se fores por lá, dá uma força, se increvendo no canal e ajudado a crecer... vamos ao assunto do poster
O que são Expressões Regulares?
Expressões regulares (também conhecidas como regex ou regexp) são sequências de caracteres que definem um padrão de busca.
Importância e Uso
As Expressões regulares são amplamente utilizadas em Python e em outras linguagens de programação para realizar operações complexas de pesquisa, correspondência e manipulação de strings, criptografia, codificação de dados, processamento de linguagem neural.
As expressões regulares permitem realizar tarefas como validar formatos de strings, extrair informações específicas de uma string e substituir partes de uma string por outras.
Vou aqui listar alguns conceitos importantes sobre expressões regulares:
1. Metacaracteres
Os metacaracteres são caracteres especiais que possuem um significado especial em expressões regulares. Alguns exemplos de metacaracteres são: . ^ $ * + ? { } [ ] \ | ( )
.
2. Sequências de Escape
Sequências de escape são combinações de caracteres que representam caracteres especiais ou classes de caracteres em expressões regulares. Por exemplo, \d
representa um dígito e \s
representa um caractere de espaço em branco.
3. Classes de Caracteres
As classes de caracteres são usadas para especificar um conjunto de caracteres permitidos em um determinado ponto da expressão regular. Por exemplo, [abc]
corresponde a qualquer um dos caracteres 'a', 'b' ou 'c'.
4. Quantificadores:
Os quantificadores são usados para especificar a quantidade de ocorrências de um elemento em uma expressão regular. Alguns exemplos de quantificadores são: *
(zero ou mais ocorrências), +
(uma ou mais ocorrências) e ?
(zero ou uma ocorrência).
Funções básicas das Expressões regulares
re.compile()
: Compila uma expressão regular em um objeto de expressão regular.
re.match()
: Verifica se uma expressão regular corresponde ao início de uma string.
re.search()
: Verifica se uma expressão regular corresponde a qualquer parte de uma string.
re.findall()
: Encontra todas as ocorrências de uma expressão regular em uma string.
re.sub()
: Substitui todas as ocorrências de uma expressão regular em uma string por outra string.
Vamos agora criar o nosso pequeno programa que vai nos ajudara a verficar se um email fornecido é válido segundo este padrão: [email protected]
import re #importando a biblioteca
#Função principal
def validar_email(email):
padrao = r'^[\w\.-]+@[\w\.-]+\.\w+$'
return re.match(padrao, email) is not None
#Exemplo de uso
endereco_email = "[email protected]"
resultado = validar_email(endereco_email)
print(resultado) # Output: True
Vamos a explicação do código, linha por linha:
import re
import re
: Essa linha importa o módulo re
, que é o módulo responsável pelo suporte a expressões regulares em Python. A importação dele é necessário para usar as funcionalidades de expressões regulares no código.
def validar_email(email):
def validar_email(email):
: Essa linha define uma função chamada validar_email
que recebe um parâmetro email
. A função irá verificar se o email fornecido é válido de acordo com um padrão de expressão regular.
padrao = r'^[\w\.-]+@[\w\.-]+\.\w+$'
Nesta linha, é criada uma variável chamada padrao
, que armazena a expressão regular usada para validar o email. A expressão regular é representada por uma sequência de caracteres precedida pelo prefixo r
, que indica que a string é uma "raw string", o que significa que os caracteres de escape (como \n, \t, etc.) não serão processados, para você que já usa Python entende isso.
A expressão regular ^[\w\.-]+@[\w\.-]+\.\w+$
é usada para validar o email. Vamos analisar cada parte dela:
^
: Indica que a expressão deve começar no início da string.
[\w\.-]+
: Corresponde a um ou mais caracteres que podem ser letras, dígitos, sublinhados, pontos ou hifens.
@
: Corresponde ao caractere "@".
[\w\.-]+
: Corresponde a um ou mais caracteres que podem ser letras, dígitos, sublinhados, pontos ou hifens.
\.
: Corresponde ao caractere "." (observe que o ponto é escapado com o caractere , pois o ponto é um metacaractere que corresponde a qualquer caractere em expressões regulares, mas aqui queremos corresponder literalmente ao caractere ponto).
\w+
: Corresponde a um ou mais caracteres que podem ser letras, dígitos ou sublinhados.
$
: Indica que a expressão deve terminar no final da string.
return re.match(padrao, email) is not None
return re.match(padrao, email) is not None
: Essa linha utiliza a função re.match()
do módulo re
para verificar se o email fornecido corresponde ao padrão definido na variável padrao
.
A função re.match()
verifica se o padrão corresponde ao início da string fornecida (email
).
Se a correspondência for bem-sucedida, re.match()
retorna um objeto de correspondência que não é None
, o que indica que o email é válido de acordo com o padrão.
Caso contrário, se não houver correspondência, re.match()
retorna None
, o que indica que o email não é válido.
endereco_email = "[email protected]"
endereco_email = "[email protected]"
: Essa linha define uma variável chamada endereco_email
e atribui a ela o valor "[email protected]". Esse é o email que será verificado pela função validar_email
.
resultado = validar_email(endereco_email)
resultado = validar_email(endereco_email)
: Essa linha chama a função validar_email
com o valor da variável endereco_email
como argumento. A função irá verificar se o email fornecido é válido de acordo com o padrão definido.
print(resultado) # Output: True
print(resultado) # Output: True
: Essa linha imprime o resultado retornado pela função validar_email
. Se o email for válido, o resultado será True
, caso contrário, será False
.
Portanto, ao executar esse código, ele imprimirá True
no console, pois o email "[email protected]" é válido de acordo com o padrão de expressão regular definido.
Alteração ao código
Caso você deseje passar o email de teste pelo input e não pela variável como fazemos no programa, aqui vai um pedaço de código que você pode usar para substituir esta linha: endereco_email = "[email protected]"
endereco_email = input('Digite o email para verificar: ')
Essa linha de código irá te permitir digitar o email que deseja verificar atravez do input no terminal.
A ressaltar que a ferramenta é muito poderosa com muitos recursos e possibilidades, eu recomendo estudares bastante (assim como a qualquer outra ferramenta), estudar e praticar mais para se tornar proficiente em seu uso. Você pode consultar a documentação oficial do módulo
re
em Python para aprender mais sobre os recursos disponíveis.
Espero que você tenha gostado dessa Matéria!
@settomoceme