Aula 7 - RegEx e APIs
Testar RegEx
re
-
Importar biblioteca:
-
Criar padrão do RegEx à ser procurado:
-
Buscar correspondência na string inteira:
-
Coletar a única combinação completa:
-
Fazer grupos com parênteses:
-
Coletar dados dos grupos encapsulados pelo parênteses:
# Usando index print(f'Este é o grupo 0: {coleta.group(0)}') # output: 41 99123-4567 print(f'Este é o grupo 1: {coleta.group(1)}') # output: 41 print(f'Este é o grupo 2: {coleta.group(2)}') # output: 99123 print(f'Este é o grupo 3: {coleta.group(3)}') # output: 4567 # Tupla com os valores dos grupos coleta.groups() # output: ('41', '99123', '4567')
-
Selecionar uma palavra ou outra:
-
Selecionar parcialmente uma palavra ou outra:
-
Elemento opcional no meio de uma palavra/frase (existe ou não existe):
-
Repetição indefinida (0 ou 1 até o infinito):
-
Localizar mais de uma correspondência (resultado em lista):
-
Correspondência no início da frase/texto:
-
Correspondência no final da frase/texto:
-
Caractere coringa:
-
Correspondência sem saber a palavra, mas tendo uma frase padrão:
-
Remover Case Sensitive (diferença entre maiúsculas e minúsculas) do RegEx:
-
Substituir valores:
-
Separar uma frase através de um padrão:
-
Padrões prontos:
-
Buscar por CPF:
```python regex_cpf = re.compile(r'\d{3}\.?\d{3}\.?\d{3}\-?\d{2}') coleta = regex_cpf.findall('O seu CPF é 470.485.110-95 e o meu é 11745629009') print(coleta) # output: ['470.485.110-95', '11745629009'] ```
-
Busca por telefone:
```python regex_tel = re.compile(r'\(?\d{2}\)?\s?\d{4,5}\-?\d{4}') coleta = regex_tel.findall("O seu telefone fixo é (41) 3123-4567, já o celular é 41 99123-4567 e o meu seria 4131234567.") print(coleta) # output: ['(41) 3123-4567', '41 99123-4567', '4131234567'] ```
-
Busca por Email:
```python regex_email = re.compile(r'(?:\w+\.)*\w*\@\w*(?:\.\w+)+') coleta = regex_email.findall('O seu e-mail é tiara.hessel9@yahoo.com, o meu e-mail é shaun_nitzsche96@hotmail.com e acredito que podemos criar um e-mail em conjunto chamado alphonso19@outlook.com.br.') print(coleta) # output: ['tiara.hessel9@yahoo.com', 'shaun_nitzsche96@hotmail.com', 'alphonso19@outlook.com.br'] ```
APIs
- REST:
- Postman: https://www.postman.com/downloads/
- Insomnia: https://insomnia.rest/download
- SOAP:
- SoapUI: https://www.soapui.org/downloads/soapui/
Bibliotecas:
- requests
- json
Funcionalidades:
- GET
-
API de teste:
```python import requests url = "https://reqres.in/api/users?page=2" response = requests.get(url) r_json = response.json() print(r_json['data'][0]['email']) # output: michael.lawson@reqres.in ```
-
API de Universidades no Brasil:
```python import requests url = "http://universities.hipolabs.com/search?country=brazil" response = requests.get(url) r_json = response.json() print(r_json[15]['name']) # output: Universidade Regional de Blumenau ```
-
Exemplos GET:
- POST:
-
Cadastrar usuário de teste:
```python import requests import json url = "https://reqres.in/api/users" payload = json.dumps({ "name": "Harry Potter", "job": "Desenvolvedor RPA" }) headers = { 'Content-Type': 'application/json' } response = requests.post(url, headers=headers, data=payload) r_json = response.json() print(r_json['job']) # output: Desenvolvedor RPA ```
-
PUT:
- Serve para atualizar algum dado em base através de API.
- DELETE:
- Serve para apagar algum dado em base através de API.
Extras
APIs para "Brincar"
- https://apipheny.io/free-api/
- https://github.com/public-apis/public-apis
- https://jsonplaceholder.typicode.com/
- https://reqres.in/
- https://gorest.co.in/
Aprender RegEx
- https://docs.python.org/3/library/re.html
- https://www.w3schools.com/python/python_regex.asp
- https://medium.com/xp-inc/regex-um-guia-pratico-para-express%C3%B5es-regulares-1ac5fa4dd39f
- https://digitalinnovation.one/artigos/regex-regular-expression-ou-expressao-regular
- https://cheatography.com/davechild/cheat-sheets/regular-expressions/