私はその特定の方法にあまり精通していませんがreplace_all_copy
、の結果ではなく、置換文字列だけが必要なようですis_any_of
。
文字列アルゴリズムの他のオプションをざっと見てみると、次のような正規表現バージョンも機能することに気づきました。
#include <iostream>
#include <boost/algorithm/string.hpp>
#include <boost/algorithm/string/regex.hpp>
int main(int argc, char** argv) {
std::string someString = "abc.def-ghi";
std::cout << someString << std::endl;
std::string toReplace = "[.-]"; // character class that matches . and -
std::string replacement = " ";
std::string processedString =
boost::replace_all_regex_copy(someString, boost::regex(toReplace), replacement);
std::cout << processedString << std::endl;
return 0;
}
出力:
abc.def-ghi
abc def ghi
これには、ブースト正規表現ライブラリに対するリンクが必要です。私の場合、私は以下で構築しました:
g++ -L/usr/local/Cellar/boost/1.52.0/lib -lboost_regex-mt main.cpp