2011-05-12 4 views
2

こんにちは、このトピックの既存のラベルを調べても何も見つからなかったので、私はここで尋ねると思いました。基本的に私はregexとC++の初心者ですが、いくつかのレガシーコードをC++に移植しようとしています。読むべき文学の面での助けがあれば大歓迎です。構造化されていない文字列のregex_searchをブーストする

私は、ある文字列内"Life\\s*Policy\\s*=\\s*(([0-9]+)|[0-9]+\\.[0-9]*);"を検索するパターン文字列持つ「生命方針= 9.67を、人生は= 1000利点;生命は、請求項= 100」

どうやって値を取得するregex_search機能を使用することができます9.67私はそれを私の計算にもっと使うことができるように?

私は現在、このコードを持っていると私は私が欲しいものを抽出することができません:

std::string::const_iterator begin; 
boost::match_results<std::string::const_iterator> what; 
begin = st.begin(); 
boost::match_flag_type flags = boost::match_perl; 

while(boost::regex_search(begin,st.end(),what,ex,flags)) 
{ 
    successcode = 200; 
} 

私の考えは、何が私は必要なすべての情報を持っているだろうということでした。 what[0].firstは一致する文字列の先頭を指します。つまりLife Policy = 9.67;Life Claims = ..

答えて

2

what[0]は文字列全体と一致します。 what[1]は最初の一致を表し、what[2]は2番目の一致を表します。

+0

ありがとうマリウス...あなたは何[1]が私が必要とするものを持っていなければならないのか? – user751279

+0

もちろん、申し訳ありませんがミスタイプです。 –

+0

whileループから抜け出すことを忘れないでください。行の検索を続行する必要がある場合は、以下のようにbeginイテレータを更新する必要があります。start = what [0] .second; –

関連する問題