Преобразование ftp, http и e-mail ссылок в теги HTML
Если в тексте могут присутствовать адреса электронной почты, то наша задача усложняется, поскольку ссылка через прокси-сервер
http://www.proxy.com:80@www.site.com/
может трактоваться неоднозначно из-за наличия в ней символа @. Если мы сначала будем искать адреса электронной почты, то программа может "найти" такой e-mail:
80@www.site.com
Конфликт также может возникнуть со ссылками вида
ftp://login:passw@a-aa.com/www/
Чтобы устранить этот конфликт, перепишем регулярные выражения для поиска URL и добавим к ним регулярное выражение для поиска e-mail. Форматировать ссылки будем несколькими операторами подстановки, т.к. для одного оператора эта задача слишком сложна.
Вот текст всей этой программы:
Листинг 8.3.
(html, txt)
А вот результат ее работы:
Листинг 8.4.
(html, txt)
Как видим, в этом тестовом тексте программа правильно отделила e-mail ссылки от остальных ссылок.