使用正则迭代器遍历HTML文件的标记

使用正则迭代器遍历HTML文件的标记,html,c++,regex,Html,C++,Regex,我正在编写一个web浏览器,并尝试使用regex_迭代器遍历HTML文档的标记,最终创建一个文档树。首先,我需要一个正则表达式,它会给我一个HTML标记。下面应该打印出每个HTML标记 #include <string> #include <regex> #include <iostream> int main() { std::string s("<!DOCTYPE html><head></head><

我正在编写一个web浏览器,并尝试使用regex_迭代器遍历HTML文档的标记,最终创建一个文档树。首先,我需要一个正则表达式,它会给我一个HTML标记。下面应该打印出每个HTML标记

#include <string>
#include <regex>
#include <iostream>

int main()
{

    std::string s("<!DOCTYPE html><head></head><body><div class='container' id='someId'><p>Here's a p tag</p><p>Here's another p tag</p></div></body>");
    std::regex e("[someRegularExpression]");
    std::regex_iterator<std::string::iterator> htmlTagRover ( s.begin(), s.end(), e );
    std::regex_iterator<std::string::iterator> offend;
    while (htmlTagRover != offend)
        std::cout << htmlTagRover->str() << std::endl;

    return 0;
}
#包括
#包括
#包括
int main()
{
std::string s(“这里有一个p标签

这里有另一个p标签

”; std::regex e(“[someRegularExpression]”); std::regex_迭代器htmlTagRover(s.begin(),s.end(),e); std::regex_迭代器冒犯; while(htmlTagRover!=冒犯) std::cout str()const&,std::bitset)' prog.cpp:(.text.startup+0xdc):对
std::regex\u迭代器::regex\u迭代器()的未定义引用
prog.cpp:(.text.startup+0x1af):对
std::regex_迭代器::operator!=(std::regex_迭代器常量&)的未定义引用 prog.cpp:(.text.startup+0x1be):对“std::regex_迭代器::operator->()”的未定义引用 collect2:错误:ld返回1个退出状态

知道为什么吗?

根据,调用中不需要
,需要使用std::sregex\u迭代器(注意s)将regex与std::string一起使用