0

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>

如何更改提升选项,该正则表达式尝试处理任何大小的字符串并且没有引发异常。或者如何在没有正则表达式的情况下获得相同级别的标签?

4

1 回答 1

5

您不能使用正则表达式解析 HTML。对于普通的上下文无关语法,我建议只使用解析器,但 HTML 的现实状态是您需要一个专用的 HTML 解析器库。

于 2012-03-24T17:34:01.380 回答