假设我有一个字符串:
现在将其放入字符串向量后,我该如何将标记/字符串转换为替换双引号为单引号:
例如:
'm1.labs.terad ''ata.com' 应该变成 'm1.labs.terad 'ata.com',而us ''er5'应该变成'us 'er5'。
我可以使用boost::replace_all吗?
argsStr = "server ('m1.labs.terad ''ata.com') username ('us ''er5') password('user)5') dbname ('def\\ault')";
现在我正在使用以下代码来提取令牌:
'm1.labs.terad ''ata.com' <- token1
'us ''er5' <-token2
'user)5' <-token3
'def\ault' <-token4
代码:
regex re("(\'(.*?)\'\)");
typedef std::vector<std::string> StringVector;
StringVector arg_values;
boost::regex re_arg_values("('[^']*(?:''[^']*)*')");
boost::sregex_token_iterator name_iter_start(argsStr.begin(),argsStr.end(), re_arg_values, 0),name_iter_end;
std::copy(value_iter_start, value_iter_end,std::back_inserter(arg_values));
//putting the token in the string vector.
现在将其放入字符串向量后,我该如何将标记/字符串转换为替换双引号为单引号:
例如:
'm1.labs.terad ''ata.com' 应该变成 'm1.labs.terad 'ata.com',而us ''er5'应该变成'us 'er5'。
我可以使用boost::replace_all吗?
replace_all()
函数。 - PeskyPotato