r'([\w\.-]+)@([\w\.-]+)(\.[\w\.]+)
Выражение кривоватое, но не в этом суть. Не могу понят вот чего:
>>>pattern=r'([\w\.-]+)@([\w\.-]+)(\.[\w\.]+)' >>>re.search(pattern, 'test contact abc@test-group.ru.com').groups() ('abc', 'test-group.ru', '.com')
Как устроен механизм перебора строки, что в последней группе оказывается ‘.com’, а не к примеру ‘.ru.com’ - в ней же точки предусмотрены, как и во второй группе?