Я использую регулярное выражение для размещения текста между тегами:
std::string data = "<tagA>aaa</tagA><tagB>bbb</tagB><tagC>ccc</tagC>";
boost::regex expr("<tagB>(.*)</tagB>");
boost::smatch smatch;
boost::regex_search(data, smatch, expr);
//smatch[0] <tagB>bbb</tagB>
//smatch[1] bbb
Я ищу строку bbb
, которая хранится в smatch[1]
, но чтение чего-либо на основе числового индекса выглядит не очень хорошо. Есть ли другой способ получить результат? Может быть, я должен изменить регулярное выражение, чтобы получить один элемент smatch или использовать другой интерфейс?