Задать вопрос
@Junior007

Профессионально ли реализовал алгоритм?

Всем привет!

Разбираюсь с парсингом текста, поставил себе задачу извлечь все ссылки из строки (адреса ссылок).
Реализовал таким образом:

std::string str = "<html><body><a href=\"url1\">name link1</a><div><a href=\"url2\">name link2</a></body></html>";
	std::regex reg("(<a href=\")([\\w\\s]*)(\">)(.*)(</a>)");
	std::smatch res;
	std::vector<std::string> arr;

	std::string tmp_str = str;
	while (std::regex_search(tmp_str, res, reg))
	{
		arr.push_back(res[2]);
		tmp_str = tmp_str.substr(res.position(2));
	}


Интересует "профессиональность" подхода, если можно так выразится. Разумеется потом все оберну в класс и сделаю красиво, сейчас интересует именно сам алгоритм, может быть можно сделать быстрее/лучше?
  • Вопрос задан
  • 249 просмотров
Подписаться 1 Оценить Комментировать
Ответ пользователя Rsa97 К ответам на вопрос (5)
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Нет. Контрольные примеры:
<a href="#hello">hello</a>
<a href="site.ru?12">hello</a>
<a href="hello-1">hello</a><a href="hello-2">hello</a>
<a href="hello">hello<a href="hello-2">hello</a>

Ну и скобок накручено почём зря.
P.S. Ещё парочка примеров:
<a title="привет" href="#hello">hello</a>
<a      href="test">test</a>
Ответ написан