Вам не нужно для l oop, и я думаю, что ваш RegExr может быть улучшен
def find_email(email):
result = email
email_address = r"(\w+@)(\w+.* )(\w+@)(\w+.*)"
a='AAAAA@'
b='BBBBB@'
result = re.sub(email_address, rf'{a}\2{b}\4', result)
return result
email = "daniel@hotmail.com sent it to ana@gmail.com"
print(find_email(email))
Объяснение:
Вы можете создать группы замещения:
1º = 1º электронная почта 2º = сервер и тексты 3º = 2º электронная почта 4º = server.com
И теперь вам просто нужно заменить \ 1 и \ 2 на все, что вы хотите
example2 : Ваша новая процедура
import re
from random import seed
from random import randint
random_emails = ["albert", "john", "mary"]
def find_email(email):
result = email
email_address = r"(\w+@)(\w+.* )(\w+@)(\w+.*)"
first = randint(0, 2)
second = randint(0, 2)
while first == second:
second = randint(0, 2)
result = re.sub(email_address, rf'{random_emails[first]}@\2{random_emails[second]}@\4', result)
return result
email = "daniel@hotmail.com sent it to ana@gmail.com"
print(find_email(email))
Я использовал случайное число, чтобы генерировать случайное число для получения писем из списка. И "пока первый == второй:" только чтобы не повторять первое и второе письма