0

文中の句読点や他の単語の間にスペースを入れたい。しかし、boost::regex_replace() は句読点をスペースに置き換えます。文中に句読点を残したい! たとえば、このコードでは、出力は "Hello . hi , " になります。

regex e1("[.,]");
std::basic_string<char> str = "Hello.hi,";
std::basic_string<char> fmt = " ";
cout<<regex_replace(str, e1, fmt)<<endl;

手伝って頂けますか?

4

1 に答える 1

1

文字列で置換変数を使用する必要がありますfmt。ドキュメントを正しく理解していれば、フラグ フィールドがない場合は、Boost-Extended format stringを使用することをお勧めします。

そのサブ言語では、$&一致したものは何でも意味するので、次のように定義fmtしてみてください。

std::basic_string<char> fmt = " $& ";

これにより、各句読点がスペースで囲まれた同じ文字に変更されます。

于 2010-06-02T07:32:55.730 に答える