129
129
r'(?:[^@.]\b(?!\.)|\A)(' # Match a boundry, but not on an e-mail address
130
130
r'(?:\w+://|(?:www|ftp)\.)\S+?' # Match an explicit URL or guess by www.
131
131
r'|[^@\s:]+\.(?:%s)(?:/\S*?)?' # Guess at the URL based on TLD
133
133
) % '|'.join(tlds), re.I | re.DOTALL)