在C++中从纯文本生成HTML(即br和p标签)

Dom*_*ger 1 html c++ regex string

我有一堆像这样的文字:

foo
bar

baz
Run Code Online (Sandbox Code Playgroud)

什么可能是C++中最有效的转换方式:

<p>foo<br />bar</p>
<p>baz</p>
Run Code Online (Sandbox Code Playgroud)

对于大(ish)数量的文本(最多8000个字符).

我很高兴使用boost regex_replace,但我想知道字符串搜索\n\n是否更有效?有什么想法吗?还有其他方法吗?

在我工作的环境中,大多数第三方库都无法使用.

Pet*_*sen 5

我会使用一个简单的状态机.它确实要求通过循环每次比较状态,但它应该无关紧要(可以通过在第三状态中具有子循环来优化它 - 见下文).开始状态与遇到两个换行符时相同.前一个字符将有一个变量,另一个用于跟踪最后一个换行符的位置(用于生成输出).

州将是:

  • 遇到了双新线.进入状态时的动作:输出<p>,行和</ p>

  • 遇到单一新线.进入状态时的动作:线路输出和

  • 遇到正常人物

该程序看起来更像是一个C程序,但......