Форум программистов, компьютерный форум CyberForum.ru

Замена абсолютных ссылок на относительные - C++

Восстановить пароль Регистрация
 
y4ycb
0 / 0 / 0
Регистрация: 30.06.2014
Сообщений: 29
30.06.2014, 22:46     Замена абсолютных ссылок на относительные #1
Из файла, в котором дан HTML код страницы, нужно заменить все абсолютные ссылки на относительные.
То есть по сути нужно убрать из всех "<a href="http://домен/папка/ссылка">" - "http://домен"

Помогите кто-нибудь
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.06.2014, 22:46     Замена абсолютных ссылок на относительные
Посмотрите здесь:

C++ В массиве X(N) найти сумму абсолютных значений элементов и максимальный элемент по модулю
C++ Найдите количество абсолютных и локальных минимумов и максимумов среди элементов одномерного массива
C++ Упорядочить каждую строку матрицы по возрастанию абсолютных величин
C++ Упорядочить каждую строку матрицы по возрастанию абсолютных величин
C++ В двумерном массиве 5*4 целых чисел найти сумму абсолютных значений элементов каждой строки
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
gray_fox
What a waste!
 Аватар для gray_fox
1244 / 1127 / 53
Регистрация: 21.04.2012
Сообщений: 2,350
Завершенные тесты: 3
01.07.2014, 00:19     Замена абсолютных ссылок на относительные #2
y4ycb, можно регулярками, boost/regex напр.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
#include <string>
 
#include <boost/regex.hpp>
 
 
int main() {
   boost::regex const regex(R"((<\s*a\s*href\s*=\s*")http://[^/]*(.*?"\s*>))");
 
   std::string const text = R"(<body> <a href="http://www.boost.org/doc/libs/1_54_0/libs/regex/doc/html/boost_regex/syntax/perl_syntax.html"> <tag /> <a href="http://www.boost.org/doc/libs/1_54_0/libs/regex/doc/html/boost_regex/syntax/perl_syntax.html"> </body>)";
 
   std::cout << boost::regex_replace(text, regex, R"(\1\2)") << std::endl;
}
y4ycb
0 / 0 / 0
Регистрация: 30.06.2014
Сообщений: 29
01.07.2014, 21:04  [ТС]     Замена абсолютных ссылок на относительные #3
gray_fox, а если текст считывается из файла, то как?
И есть другой вариант реализации, попроще? Не знаю про boost и regex ничего...

Добавлено через 9 часов 57 минут
Ну так что, кто поможет новичку?
nmcf
4261 / 3692 / 1243
Регистрация: 14.04.2014
Сообщений: 14,470
01.07.2014, 21:13     Замена абсолютных ссылок на относительные #4
Без regex'а будет сложнее, а не проще. Он есть во всех новых версиях C++ в <regex> без boost.
y4ycb
0 / 0 / 0
Регистрация: 30.06.2014
Сообщений: 29
01.07.2014, 21:51  [ТС]     Замена абсолютных ссылок на относительные #5
nmcf, а как реализовать это же, но чтобы текст считывался из файла?

Добавлено через 41 секунду
nmcf, а также из текстбокса
nmcf
4261 / 3692 / 1243
Регистрация: 14.04.2014
Сообщений: 14,470
01.07.2014, 21:58     Замена абсолютных ссылок на относительные #6
В text считай из файла текст. А содержимое TextBox можно сразу вставить.
gray_fox
What a waste!
 Аватар для gray_fox
1244 / 1127 / 53
Регистрация: 21.04.2012
Сообщений: 2,350
Завершенные тесты: 3
01.07.2014, 23:40     Замена абсолютных ссылок на относительные #7
y4ycb, с регулярными выражениями действительно с этим проще справиться, чем "ручками" всё искать; boost/regex только для примера (что у меня есть), естественно есть и другие библиотеки для работы с регулярными выражениями. <regex> есть только в относительно новых версиях компиляторов.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.07.2014, 00:20     Замена абсолютных ссылок на относительные
Еще ссылки по теме:

C++ В двумерном массиве 5*4 целых чисел найти сумму абсолютных значений элементов каждой строки
Найти произведение абсолютных значений C++
C++ Из абсолютных величин элементов массива выбрать наибольшую

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
y4ycb
0 / 0 / 0
Регистрация: 30.06.2014
Сообщений: 29
02.07.2014, 00:20  [ТС]     Замена абсолютных ссылок на относительные #8
gray_fox, что ж, буду изучать. Спасибо
Yandex
Объявления
02.07.2014, 00:20     Замена абсолютных ссылок на относительные
Ответ Создать тему
Опции темы

Текущее время: 22:01. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru