Все RegEx код на основе перегружен , особенно код из наиболее проголосовавшего ответа, и вот почему: он найдет только действительные URL ! Например, он будет игнорировать все, что начинается с "http://" и содержит символы, не входящие в ASCII.
Еще больше: я столкнулся с 1-2-секундным временем обработки (однопоточным, выделенным) с пакетом Java RegEx для очень маленьких и простых предложений, ничего конкретного; возможно ошибка в Java 6 RegEx ...
Самое простое / быстрое решение - использовать StringTokenizer для разбиения текста на токены, удаления токенов, начинающихся с "http://" и т. Д., И повторного объединения токенов в текст.
Если вы действительно хотите использовать RegEx с Java, попробуйте Автомат