- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Всем желающим посостязаться в искусстве мышления и программирования, приглашаю принять участие в маленьком конкурсе.
Суть: написать функцию, которая принимает в качестве аргумента строку (текст), и возвращает этот же текст, в котором все URLы заменены на bbcode-урлы [_URL]протокол://найденный урл[/_URL]. При этом важным обстоятельством является то, что в тексте уже могут быть bbcode-урлы; их в этом случае, естественно, заменять уже не нужно.
Оцениваются следующие критерии:
- универсальность решения (используя замысловатые тесты)
- ресурсоемкость (на глазок, хотя можно и замерить программно)
- красота идеи и реализации
Победитель конкурса получит приз в 200 я.д. (или 200WMR, по желанию).
Если возникли вопросы, с удовольствием на них отвечу.
psylosss добавил 09.06.2008 в 18:10
P.S. пока писал, сам придумал красивое решение :)
psylosss добавил 09.06.2008 в 18:10
P.S. пока писал, сам придумал красивое решение :)
Регулярки уже не рулят?
Чорт, 200р. сорвалос! ;(
все ждём красивого решения :)
Заменяем любой урл на bbcode представление,
затем удаляем дубликаты вида [_URL][_URL]
Итого три замены.
Можно упростить до двух (наверное).
Регулярки уже не рулят?
рулят, конечно. Жду решения ;)
Чорт, 200р. сорвалос! ;(
почему сорвалось? Пока что не предложено ни одного решения.
все ждём красивого решения
именно!
Заменяем любой урл на bbcode представление,
затем удаляем дубликаты вида [_URL][_URL]
Моя идея точно такая же :) Пока это единственное предложенное решение, и на данный момент вы лидируете :) Выскажу только свои соображения: если урлы встречаются не только внутри bbcode-тега [_URL], а еще и в других (например, [_IMG] или [_YT]), то приходится отслеживать это дело для каждого тега).
Как мне видится идеальное решение - вообще не заменять вне BB-тегов. Итак, конкурс продолжается :)
Моя идея точно такая же :) Пока это единственное предложенное решение, и на данный момент вы лидируете :) Выскажу только свои соображения: если урлы встречаются не только внутри bbcode-тега [_URL], а еще и в других (например, [_IMG] или [_YT]), то приходится отслеживать это дело для каждого тега).
Как мне видится идеальное решение - вообще не заменять вне BB-тегов. Итак, конкурс продолжается :)
Если решение в один прогон будет - то я выиграю? 😂
А вот и оно:
Пояснение:
(\[URL\]*|\s*) - ищем bbcode тег или любое кол-во пробелов.
В зависимости от входных данных может понадобиться легкая доработка напильником.
Если решение в один прогон будет - то я выиграю?
Если никем не будет предложено решения, позволяющего не заменять урлы внутри тегов, то да
Если никем не будет предложено решения, позволяющего не заменять урлы внутри тегов, то да
Уже предложено. См. выше.
Алексей Барыкин, что ж, пытался придраться, не получилось :) Давайте кошелек в личку. Напильником сам допилю :)
Конкурс завершен. Победитель - Алексей Барыкин! Всем участникам спасибо :)
(\[URL\]*|\s*) - ищем bbcode тег или любое кол-во пробелов.
Вообще-то вы конструкцией вида \[URL\]* ищете строки "[URL", "
" title="]"...
" target="_blank">]"...
" title="", "
" title="]"...
" target="_blank">]"...
" target="_blank">", "
" title="]"...
" target="_blank">]"...