Boost抛出异常。
An unhandled exception "0x000007fefd0aa88d" in the "svg.exe": Exception Microsoft C: boost :: exception_detail :: clone_impl <boost :: exception_detail :: error_info_injector <std::runtime_error>>
表示正则表达式
opentag = [<] [s] [p] [a] [n]
closetag = [<] [/] [s] [p] [a] [n] [>]
/opentag+"(?>(?>(?!"+opentag+"|"+closetag+").) |(?R))*"+closetag/
如果传入的字符串(std :: string)大小超过140 kb。
我需要将标签放在同一级别。
std :: string = "<span id=1> </ span>
<span id=2> <span> </ span> </ span>
<span id=3> <span> <span> <span> </ span> </ span> </ span> </ span> "
三个字符串
0) <span id=1> </ span>
1) <span id=2> <span> </ span> </ span>
2) <span id=3> <span> <span> <span> </ span> </ span> </ span> </ span>
如何更改boost选项,正则表达式尝试处理任何大小的字符串并且不会抛出异常。 或者如何在没有正则表达式的情况下获得相同级别的标签?
答案 0 :(得分:5)
您无法使用正则表达式解析HTML。对于普通的无上下文语法,我建议只使用解析器,但HTML的现实状态是你需要一个专用的HTML解析器库。