Ваше текущее регулярное выражение соответствует @
, за которым следует начало строки, за которым следует один непробельный символ, за которым следует конец ввода.(Я предполагаю, что вы должным образом избежали обратной косой черты для строки в вашем фактическом коде.)
То, что вы хотите сделать, это сопоставить позицию после @
, а затем любое числоиз непробельных символов, затем конец ввода:
domain = re.search(r"(?<=@)(\S+$)", email)
Здесь (?<=@)
- это просмотр сзади, который проверяет, что предыдущий символ или символы соответствуют содержанию круглых скобок;\S+
соответствует одному или нескольким непробельным символам;и $
соответствует концу строки.
Другой вариант, который не требует регулярных выражений:
domain = email.split("@")[1]