QStringからある種の(または純粋な)XMLコードを解析したいと思います。
私のQStringは次のようなものです:
<a>cat</a>My cat is very nice.
2つの文字列を取得したい:
猫、そして私の猫はとてもいいです。
XMLパーサーはおそらく必要ないと思いますが、将来的には同じ文字列にさらに多くのタグを含める予定なので、これも非常に興味深い点です。
Qtには、QRegExp
QStringの解析に役立つクラスがあります。
ドキュメントの例によると:
QRegExp rxlen("^<a>(.*)</a>(.*)$");
int pos = rxlen.indexIn("<a>cat</a>My cat is very nice.");
QStringList list
if (pos > -1) {
list << = rxlen.cap(1); // "cat"
list << = rxlen.cap(2); // "My cat is very nice."
}
QStringListリストにはとが含まれcat
ますMy cat is very nice.
正規表現を使用できます<a>(.*)</a>(.*)
。
使用するBoost
場合は、次のように実装できます。
boost::regex exrp( "^<a>(.*)</a>(.*)$" );
boost::match_results<string::const_iterator> what;
if( regex_search( input_string, what, exrp ) ) {
std::string tag( what[1].first, what[1].second );
std::string value( what[2].first, what[2].second );
}