Supondo que os usuários devem enviar uma URL ou 🔗link para compartilhar seus nomes de usuário 👤. Bora usar o regex para selecionar somente o usuário ao invés da URL toda, para isso há um exemplo de URL como base: https://twitter.com/fulano001
👇:
url = input("URL:").strip()
usuario = url.replace("https://twitter.com/", "")
print(f"Usuario: {usuario}")
URL:https://twitter.com/fulano001
Usuario: fulano001
Há outros métodos ou funções para remover partes específicas de um texto:
url = input("URL:").strip()
usuario = url.removeprefix("https://twitter.com/")
print(f"Usuario: {usuario}")
Existe algumas limitações desse 👆 código, por exemplo, o usuário escrever a URL usando 'www.
' ou protocolo 'http:
', existe uma função sub()
no módulo regex que seleciona um padrão e substitui 🔄 por outro padrão, no seguinte exemplo, vai selecionar o padrão e substituir por um espaço, então vai "apaga-lo" 👇:
import re
url = input("URL:").strip()
#sub(padrão,substitui,texto)
usuario = re.sub(r"^(https?://)?(www\.)?twitter\.com", "", url)
print(f"Usuario: {usuario}")
No anterior 👉post há uma lista de alguns padrões, o uso de (...)
serve para agrupar caracteres ou capturar padrões e o uso de (?: ...)
serve para não capturar padrões e sim agrupar padrões, bora entender 👇:
import re
url = input("URL:").strip()
busca = re.search(r"^https?://(www\.)?twitter\.com\(\w+)$", url, re.IGNORECASE)
if busca:
print(f"Usuario:", busca.group(2)) # grupo dois
Perceba que nesse 👆 código, na busca há dois grupos (www\.)
e (\w+)
, obs: no regex a contagem começa no número 1. E podemos excluir a captura de grupo usando (?:)
import re
url = input("URL:").strip()
busca = re.search(r"^https?://(?:www\.)?twitter\.com\(\w+)$", url, re.IGNORECASE)
if busca:
print(f"Usuario:", busca.group(1)) #grupo 1, so existe ele.
Walrus
O operador 🦭 "walrus" (:=
) é uma adição introduzida no Python 3.8 que permite atribuir um valor a uma variável como parte de uma expressão. Isso é especialmente útil em situações em que você precisa avaliar uma expressão e, ao mesmo tempo, 🗄️ armazenar o resultado em uma variável para uso posterior.
import re
url = input("URL:").strip()
if busca := re.search(r"^https?://(?:www\.)?twitter\.com\(\w+)$", url, re.IGNORECASE):
print(f"Usuario:", busca.group(1))