QStringの一部を解析して削除します
質問
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 );
}
所属していません StackOverflow