2017-04-03 4 views
1

私はboost :: regexをstd :: regexに置き換え、boost :: regexの参照でグループインデックスを取得するという課題に遭遇しました。私は、結果として「M1」を取得boost::regex_replace("Match1", re, replace_str, format_all) を呼び出してstd::regex_replace("Match1", re, replace_str)で結果が全体で構成されている場合はstd :: regex_replace:不一致マッチグループのインデックスにアクセス

replace_str = "(?{1}M1)(?{2}M2)(?{3}M3)(?{4}M4)" 

:置き換える文字列で

re = "(^Match1$)|(^Match2$)|(^Match3$)|(^Match4$)" 

正規表現は、そのように見えますreplace_str。

regexの標準化された亜種にはformat_allオプションがありません(これが問題であるかどうかはわかりません)。 http://en.cppreference.com/w/cpp/regex/match_flag_type

同様の動作をC++ 11/14正規表現ライブラリでどのように再現できますか? 私は、その動作をブーストなしで使用することを可能にするオプションまたは構文が欠けていますか?

答えて