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

How to tokenize a string with percentages?

本文关键字:字符串 百分比 何使用      更新时间:2023-10-16

我的目的是以这种方式标记以下输入字符串%08%04root%08%03KEY%08%05site2%08%11ksk-1483008950879%08%07ID-CERT

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

然后我尝试了以下方法:

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

不幸的是,所有项目"8"都被捕获,划分如下:

Token: 4root //OK
Token: 3KEY  //OK
Token: 5site2 //OK
Token: 11ksk-14 
Token: 3
Token: 95
Token: 79
Token: 7ID-CERT //OK

然后我需要一种方法来区分项目%088。我还尝试了分隔符8x08,但通过这种方式,标记与整个字符串相同。

boost::char_separator

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