Boost
arrow_drop_down
Boost.Tokenizer
M
D

本次发布

John Bandela
作者
John R. Bandela
维护者

依赖项

Boost.Tokenizer

Boost.Tokenizer 是 Boost C++ 库 的一部分。Boost.Tokenizer 包提供了一种灵活易用的方法来将字符串或其他字符序列分解为一系列标记。

License

根据 Boost Software License, Version 1.0 分发。

属性

  • C++03
  • 仅头文件

构建状态

分支 GHA CI Appveyor Coverity Scan codecov.io 依赖 文档 测试
master Build Status Build status Coverity Scan Build Status codecov Deps Documentation Enter the Matrix
develop Build Status Build status Coverity Scan Build Status codecov Deps Documentation Enter the Matrix

概述

将短语分解为单词。

![在线尝试][badge.wandbox]

#include <iostream>
#include <boost/tokenizer.hpp>
#include <string>

int main(){
    std::string s = "This is,  a test";
    typedef boost::tokenizer<> Tok;
    Tok tok(s);
    for (Tok::iterator beg = tok.begin(); beg != tok.end(); ++beg){
        std::cout << *beg << "\n";
    }
}

使用基于范围的 for 循环(C++11 或更高版本)

![在线尝试][badge.wandbox]

#include <iostream>
#include <boost/tokenizer.hpp>
#include <string>

int main(){
    std::string s = "This is,  a test";
    boost::tokenizer<> tok(s);
    for (auto token: tok) {
        std::cout << token << "\n";
    }
}

相关材料

Boost.Tokenizer,theboostcpplibraries.com 的第 10 章,包含几个示例,包括 escaped_list_separator

致谢

来自作者

我想感谢 boost 邮件列表的成员,他们在开发和正式评审过程中提出的意见、赞扬和批评,帮助 Tokenizer 库成为今天的样子。我尤其想感谢 Aleksey Gurtovoy 使用一对迭代器来指定输入的想法,而不是使用字符串。我还想感谢 Jeremy Siek 提供标记迭代器的容器接口的想法,以及简化 TokenizerFunctions 的模板参数。他和 Daryle Walker 还强调了将接口和实现分离的必要性。Gary Powell 提出了使用 isspace 和 ispunct 作为 char_delimiters_separator 默认值的想法。Jeff Garland 提出了如何更改模板参数顺序以使 tokenizer 更易于声明的想法。感谢 Douglas Gregor,他担任评审经理,并在 boost 列表和电子邮件中提供了许多关于如何完善 Tokenizer 的实现和演示的见解。最后,感谢 Beman Dawes 将最终版本集成到 boost 发行版中。

目录

名称 目的
example 示例
include header
测试 单元测试

更多信息

  • 提问
  • 报告错误:请务必提及您正在使用的 Boost 版本、平台和编译器。一个可以重现问题的可编译小代码示例也总是有帮助的。
  • 请将您的补丁作为拉取请求提交到 develop 分支。请注意,提交补丁即表示您同意根据 Boost Software License, Version 1.0 许可您的修改。
  • 关于该库的讨论在 Boost 开发者邮件列表 上进行。发布前请务必阅读 讨论政策,并在主题行开头添加 [tokenizer] 标签。

全部时间

Beman Dawes
Beman Dawes
贡献者
Marshall Clow
Marshall Clow
贡献者
James E. King III
James E. King III
贡献者
Rene Rivera
Rene Rivera
贡献者
Andrey Semashev
Andrey Semashev
贡献者
K. Noel Belcourt
K. Noel Belcourt
贡献者
Jeremy Siek
Jeremy Siek
贡献者
John Maddock
John Maddock
贡献者
Troy D. Straszheim
Troy D. Straszheim
贡献者
Edward Diener
Edward Diener
贡献者
dmeden
dmeden
贡献者
Douglas Gregor
Douglas Gregor
贡献者
Daniel James
Daniel James
贡献者
Michael A. Jackson
Michael A. Jackson
贡献者
Ahmed Charles
Ahmed Charles
贡献者
Glen Fernandes
Glen Fernandes
贡献者
Jens Maurer
Jens Maurer
贡献者
Andreas Huber
贡献者
Gennaro Prota
贡献者
Vicente J. Botet Escriba
Vicente J. Botet Escriba
贡献者
Björn Karlsson
贡献者
nobody
贡献者
Dave Abrahams
Dave Abrahams
贡献者
Joaquin M. López Muñoz
Joaquin M. López Muñoz
贡献者
Steven Watanabe
Steven Watanabe
贡献者
Alexander Grund
Alexander Grund
贡献者
Peter Dimov
Peter Dimov
贡献者
Stephen Kelly
Stephen Kelly
贡献者
Markus Schöpflin
贡献者
Aleksey Gurtovoy
贡献者
Nikita Kniazev
Nikita Kniazev
贡献者
sdarwin
sdarwin
贡献者
Joel de Guzman
Joel de Guzman
贡献者
Jeff Garland
Jeff Garland
贡献者
Noel Belcourt
Noel Belcourt
贡献者
Camille Brugel
Camille Brugel
贡献者
Gregor Jasny
Gregor Jasny
贡献者
Darin Adler
贡献者