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 的想法,即为 token 迭代器提供一个容器接口,并简化 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
贡献者