@Junior007

Как в одной строке найти несколько вхождений?

Предположим, есть строка в которой есть N ссылок, регулярку для поиска ссылки написал, работает.
Можно ли как-то обойтись одним рег. выражением и сразу извлечь все адреса из строки?
Или тут нужно писать цикл и пока строка не кончилась начинать новый поиск с предыдущей позиции?

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

	std::regex_search(str, res, reg);
	std::cout << res[2] << std::endl;
	std::regex_search(str, res, reg);
	std::cout << res[2] << std::endl;
  • Вопрос задан
  • 267 просмотров
Пригласить эксперта
Ответы на вопрос 1
xpert13
@xpert13
Full Stack Developer
Если в результате хотите получить какой-то массив ссылок - тогда только цикл.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы