boost replace_if replace_all_regex_copy用法

#include <boost/algorithm/string.hpp>            // for is_any_of
#include <boost/range/algorithm/replace_if.hpp>  // for replace_if
#include <string>
#include <iostream>

std::string someString = "abc.def-ghi";
std::string toReplace = ".-";
std::string processedString =
   boost::replace_if(someString, boost::is_any_of(toReplace), ' ');

int main()
{
    std::cout << processedString;
}
This modifies the original, so if you need to keep it, you can use boost::replace_copy_if:

#include <boost/algorithm/string.hpp>
#include <boost/range/algorithm/replace_copy_if.hpp>
#include <string>
#include <iostream>
#include <iterator>    // for back_inserter

std::string someString = "abc.def-ghi";
std::string toReplace = ".-";

int main()
{
    std::string processedString;
    boost::replace_copy_if(someString,
        std::back_inserter(processedString), boost::is_any_of(toReplace), ' ');
    std::cout << processedString;
}


replace_all_regex_copy

#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;                                                                                                                                                                        
} 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值