0

wxWidgets の一部の html コードから部分文字列を抽出しようとしていますが、メソッドが正しく機能しません。

to_parse の内容:

[HTML コード]

<html><head></head><body><font face="Segue UI" size=2 .....<font face="Segoe UI"size="2" color="#000FFF"><font face="@DFKai-SB" ... <b><u> the text </u></b></font></font></font></body></html>

[/HTML コード] (形式については申し訳ありません)

wxString to_parse = SOStream.GetString();

size_t spos = to_parse.find_last_of("<font face=",wxString::npos);
size_t epos = to_parse.find_first_of("</font>",wxString::npos);

wxString retstring(to_parse.Mid(spos,epos));
wxMessageBox(retstring);    // Output: always --->  tml>

HTML には to_parse 変数のフォント フェイス タグがいくつかあるため、最後のタグ<"font face=の位置と最初の<"/font>"終了タグの位置を見つけたいと思います。

何らかの理由で、予期しない 出力 だけが同じになるtml>

誰でもその理由を見つけることができますか?

4

2 に答える 2

0

メソッドfind_{last,first}_of()は、あなたが思っているようには動作しません。std::basic_string<>同じ名前のメソッドと同じように動作し、渡された文字列の最初 (または最後) の文字を見つけます。ドキュメント を参照してください。

部分文字列を検索する場合は、 を使用しますfind()

于 2013-10-19T23:12:01.063 に答える