| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Perl: Общие вопросы > Регулярные выражения |
| Автор: s_a_s_h_a 2.9.2004, 16:52 |
| Есть строка надо найти все что похоже на URL'ы и EMAIL'ы и заменить похожий URL на URL с http Пример: $str="fhdkj site.my.ru jfdsdk asgolovin@yandex.ru jfkjk http://site.my.ru dklsjk"; нужен результат: $str="fhdkj <http://site.my.ru> jfdsdk <asgolovin@yandex.ru> jfkjk <http://site.my.ru> dklsjk"; Ничего не могу придумать. |
| Автор: s_a_s_h_a 2.9.2004, 17:13 |
| По отдельности получилось, а вот вместе пока нет $str =~ s/\s(([\w_\.\-])+\@(([\w\-])+\.)+([\w]{2,4}))\s/ \<$1\> /g; $str =~ s/\s((([\w_\-0-9])+\.)+([\w_\-0-9])+)\s/ \<$1\> /g; $str =~ s/\s((http:\/\/)(([\w_\-0-9])+\.)+([\w_\-0-9])+)\s/ \<$1\> /g; Добавлено @ 17:18 Оказывается их надо просто друг за другом расположить. |
| Автор: Chuck 2.9.2004, 20:49 |
| Так я не понял ты решил проблему??? Если да, закрывай тему!! А то я не прочитав, полез в Справочник RegExp ))) |
| Автор: s_a_s_h_a 3.9.2004, 08:35 |
| Да решил. Я на форумах недавно. Почитал правила, но нигде не нашел, что надо закрывать тему и как это делать. Кстати, для поиска URL'ов нужно внести небольшую корректировку $str =~ s/\s((([\w_\-0-9\/~])+\.)+([\w_\-0-9\/~])+)\s/ \<$1\> /g; $str =~ s/\s((http:\/\/)(([\w_\-0-9\/~])+\.)+([\w_\-0-9\/~])+)\s/ \<$1\> /g; А почитать никогда не вредно. |
| Автор: ElectricalStorm 3.9.2004, 10:05 | ||
Это точно . |