Я рассмотрел эту проблему в прошлом году и разработал решение, на которое вы, возможно, захотите взглянуть - см .: URL Linkification (HTTP / FTP) Эта ссылка является тестовой страницей для решения Javascript со многими примерами. трудных для ссылки URL.
Мое решение для регулярных выражений, написанное как для PHP, так и для Javascript, - не простое (но проблема, как выясняется, тоже). Для получения дополнительной информации я бы рекомендовал также прочитать:
Проблема с URL Джеффом Этвудом и
Улучшенный либеральный, точный шаблон регулярных выражений для сопоставления URL от Джона Грубера
Комментарии, следующие за сообщением в блоге Джеффа, должны быть прочитаны, если вы хотите сделать это правильно ...
Также обратите внимание, что регулярное выражение Джона Грубера содержит компонент, который может войти в область катастрофического возврата (часть, которая соответствует одному уровню соответствующих скобок).