将boost :: tokenizer与字符串分隔符一起使用

Mar*_*tin 11 c++ string boost tokenize

我一直在寻找boost :: tokenizer,我发现文档很薄.是否有可能使它像一个像"海豚 - 猴子 - 狒狒"这样的字符串进行标记,并使每一个字都成为一个标记,以及每一个双字母都是一个标记?从示例中我只看到允许单个字符分隔符.库是否不够先进,不适合更复杂的分隔符?

小智 10

使用iter_split允许您使用多个字符标记.下面的代码将产生以下代码:

dolphin
mon-key
baboon

#include <iostream>
#include <boost/foreach.hpp>
#include <boost/algorithm/string.hpp>
#include <boost/algorithm/string/iter_find.hpp>

    // code starts here
    std::string s = "dolphin--mon-key--baboon";
    std::list<std::string> stringList;
    boost::iter_split(stringList, s, boost::first_finder("--"));

    BOOST_FOREACH(std::string token, stringList)
    {    
        std::cout << token << '\n';  ;
    }
Run Code Online (Sandbox Code Playgroud)


Ada*_*kin 0

看起来您需要编写自己的TokenizerFunction来完成您想要的操作。