Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Java: Общие вопросы > Помогите разобраться с регулярным выражением |
Автор: jackson1986 21.4.2013, 15:23 | ||
Всем привет. Задача: В тексте все ссылки (подстроки начинающиеся с "http:", "https:" и заканчивающиеся пробелами или символами табуляции) необхдимо завернуть в тег <a href="ссылка">ссылка</a>, при этом заворачивать нужно такие ссылки которые уже не являются значяением аттрибута href (href="ссылка" оставить без изменений) Решение:
Проблема:Результат получается в этом примере sdfsdf<a title="fff" href="http:\www.a1.ru"> dggf <p> <a href="http:\www.a2.ru">http:\www.a2.ru</a> </p>sdfsd<p>http:\www.a3.ru</p> Т.е нормально завернулась только ссылка www.a2.ru, а www.a3.ru не была обработана (потому что нет пробелов между ней и тегами). Подскажите пожалуйста, как можно изменить регулярное выражение, чтоб вот эта ссылка <p>http:\\www.a3.ru</p> тоже обрабатывалась ? Вот такое изменение "(\\A|\\s|>)((http|https|ftp|mailto):\\S+)(\\s|\\z)" помогло частично — последняя ссылка стала обрабатываться как <a href="http:\\www.a3.ru</p>">http:\\www.a3.ru</p></a> т.е. последний тег </p> тоже попадает. Я так понимаю, тут все дело в \S+ который гребет все символы, кроме пробела, но как сделать, чтоб он брал все символы до пробела или символа "<" ? Заранее большое спасибо |
Автор: Stolzen 21.4.2013, 17:28 |
Попробуйте "\S+?" |
Автор: jackson1986 22.4.2013, 08:44 |
Спасибо, но все равно не работает. Вот http://javatalks.ru/posts/186691 решение помогло |