如何用百分比标记字符串?

时间:2017-01-02 10:43:43

标签: c++ c++11 tokenize

我的目的是以这种方式标记以下输入字符串find

%08%04root%08%03KEY%08%05site2%08%11ksk-1483008950879%08%07ID-CERT

然后我尝试了以下方法:

4root
3KEY
5site2
11ksk-1483008950879
7ID-CERT

不幸的是,所有项目'8'都被捕获,具有以下划分:

char_separator<char> sepSig("%08");    
boost::tokenizer< char_separator<char> > tokenSig(inputString, sepSig);   
BOOST_FOREACH (const string& t, tokenSig)
    log << "Token: " << t << std::endl; 

然后我需要一种方法来区分项Token: 4root //OK Token: 3KEY //OK Token: 5site2 //OK Token: 11ksk-14 Token: 3 Token: 95 Token: 79 Token: 7ID-CERT //OK %08。我还尝试了分隔符8\08,但这样,令牌与整个字符串相同。

1 个答案:

答案 0 :(得分:1)

boost::char_separator任何字符视为分隔符。我看不到string_separator - 您可以自己编写,或者只用"%08"替换"\t"的每次出现,然后在\t上分开。