C++/STL 正規表現の置換-boost::Regex_replace

1年ぶりのC++/SLTネタです。

正規表現での置換ですが、ちょっとハマったのでメモ書きします。以下、srcstrで与えられたstringに対して,fstr(正規表現)の検索を行い、repstrで置換します。マッチする文字列全てを置換します。結果の文字列はdststrで返します。


void replace_regex_all(
    string &srcstr, const char *fstr, const char *repstr, string &dststr)
{
    string tmp;
    boost::regex fnd(fstr);
    ostringstream t(ios::out | ios::binary);
    ostream_iterator<char, char> oi(t);
    boost::regex_replace(
        oi,
        srcstr.begin(),
        srcstr.end(),
       fnd,
       repstr,
       boost::match_default | boost::format_all);
    dststr = t.str();
}

2010-06-11 | コメント:0件

コメントをどうぞ


『不適切なコメントへの対応』を一読下さい。
現在コメントは承認制となっております。

Previous Page | Next Page