正規表現を使用したHTMLの解析に関する通常の警告がすべて適用されます。
#include <boost/regex.hpp>
#include <iostream>
#include <string>
int main()
{
boost::regex double_br("<br/?>[ \\r\\n\\s]*<br/?>", boost::regex::icase);
boost::regex fonts("</?font[^>]*>", boost::regex::icase);
std::string cases[] = {
"foo<br><br>bar",
"one<br/><br>two",
"a<br> <br/>b",
"a<br><br>c<br/><br/>d",
"<font attr=\"value\">w00t!</font>",
"<font attr=\"value\">hello</font><font>bye</font>",
""
};
for (std::string *s = cases; *s != ""; ++s) {
std::cout << *s << ":\n";
std::string result;
result = boost::regex_replace(*s, double_br, "</p><p>");
result = boost::regex_replace(result, fonts, "");
std::cout << " - [" << result << "]\n";
}
return 0;
}
出力:
foo <br> <br> bar:
-[foo </ p> <p> bar]
1つ<br/><br>2つ:
-[1つ</p><p>2つ]
a <br> <br/> b:
-[a </ p> <p> b]
a <br> <br> c <br/> <br/> d:
-[a </ p> <p> c </ p> <p> d]
<font attr = "value"> w00t!</ font>:
-[w00t!]
<fontattr ="value">こんにちは</font><font>さようなら</font>:
- [こんにちはさようなら]