当前位置: 首页 > news >正文

boost库:字符串处理

使用boost库的字符串处理之前,需要进行区域设置。类:std::locale,每个C++程序自动拥有一个此类的实例,不能直接访问全局区域设置。

全局区域设置可以使用类std::locale中的静态函数global()改变。

#include <locale>
#include <iostream>

int main() {
  std::locale::global(std::locale("German"));
  std::locale loc;
  std::cout << loc.name() << std::endl;
  return 0;
}

静态函数global()接受一个类型为std::locale的对象作为其唯一的参数。

 

正则表达式库 Boost.Regex

boost::regex 用于定义一个正则表达式库

boost::smatch可以保存搜索结果

#include <boost/regex.hpp>
#include <locale>
#include <iostream>

int main() {
  std::locale::global(std::locale("German"));
  std::string s = "Boris Schaling";
  boost::regex expr("\\w+\\s\\w+");
 std::cout << boost::regex_match(s, expr) << std::endl;
return 0;
}

 boost::regex_match()用于字符串与正则表达式的比较,字符串匹配正则表达式时返回true。

下面介绍一下boost string常用的算法接口:

1. case conversiion
to_upper()  将输入字符串转换成大写。
to_upper_copy() 输入字符串不变,返回值为转换成大写的字符串。
to_lower()  将输入字符串转换成小写。
to_lower_copy()  输入字符串不变,返回值为转换成小写的字符串。
2. trimming
trim_left() 将输入字符串左边的空格删除。
trim_left_copy() 输入字符串不变,返回去除左边空格的字符串。
trim_left_if() 将输入字符串左边符合条件的字符去除。trim_left_if("12hello", is_digit()), 输出 hello
trim_left_copy_if() 输入字符串不变,意思同上。

trim_right() 意思同left差不多。删除右边的空格
trim_right_if()
trim_right_copy()
trim_right_copy_if()

trim() 删除首尾两端的空格。
trim_if()
trim_copy()
trim_copy_if()
3. predicates
bool starts_with(input, test) 判断input是否以test为开端。
bool istarts_with(input, test) 判断input是否以test为开端,大小写不敏感。

bool ends_with(input, test) 判断input是否以test结尾。
bool iends_with(input, test) 判断input是否以test结尾, 大小写不敏感。

bool contains(input, test) 判断test是否在input里。
bool icontains(input, test) 判断test是否在input里,大小写不敏感。

bool equals(input, test) 判断input和test是否相等。
bool iequals(input, test) 判断input和test是否相等, 大小写不敏感。

bool lexicographical_compare() 按字典顺序检测input1是否小于input2。
bool ilexicographical_compare() 按字典顺序检测input1是否小于input2, 大小写不敏感。

bool all() 检测输入的每个字符是否符合给定的条件。
4. find algorithms
iterator_range<string::iterator> find_first(input, search) 从input中查找第一次出现search的位置。
iterator_range<string::iterator> ifind_first(input, search) 从input中查找第一次出现search的位置,大小写不敏感。

iterator_range<string::iterator> find_last(input, search) 从input中查找最后一次出现search的位置。
iterator_range<string::iterator> ifind_last(input, search) 从input中查找最后一次出现search的位置,大小写不敏感。

iterator_range<string::iterator> find_nth(input, search, n) 从input中查找第n次(n从0开始)出现search的位置。
iterator_range<string::iterator> ifind_nth(input, search, n) 从input中查找第n次(n从0开始)出现search的位置,大小写不敏感。

iterator_range<string::iterator> find_head(input, n) 获取input开头n个字符的字串。
iterator_range<string::iterator> find_tail(input, n) 获取input尾部n个字符的字串。

iterator_range<string::iterator> find_token() 

 

转载于:https://www.cnblogs.com/sssblog/p/10307671.html

相关文章:

  • OpenSSL生成私钥和公钥
  • centos7.5配置双网卡上网
  • 工作总结报告
  • 孤荷凌寒自学python第七十八天开始写Python的第一个爬虫8
  • java 多线程
  • .NET Core IdentityServer4实战-开篇介绍与规划
  • Matplotlib中plt.rcParams用法(设置图像细节)
  • 14-tail-and-head-commands-linuxunix
  • Apollo的Oracle适配改动
  • 甄姬
  • Sql 排序
  • contest3 CF994 div2 ooxxx? oooox? ooooo?
  • 梯度下降算法对比(批量下降/随机下降/mini-batch)
  • Angular CLI的简单使用(2)
  • 最大团优化
  • 【React系列】如何构建React应用程序
  • 08.Android之View事件问题
  • axios请求、和返回数据拦截,统一请求报错提示_012
  • CentOS7简单部署NFS
  • Date型的使用
  • Druid 在有赞的实践
  • export和import的用法总结
  • HTML5新特性总结
  • java8-模拟hadoop
  • JavaScript 奇技淫巧
  • PHP的Ev教程三(Periodic watcher)
  • React的组件模式
  • Spring Boot MyBatis配置多种数据库
  • UMLCHINA 首席专家潘加宇鼎力推荐
  • 百度贴吧爬虫node+vue baidu_tieba_crawler
  • 从 Android Sample ApiDemos 中学习 android.animation API 的用法
  • 从零到一:用Phaser.js写意地开发小游戏(Chapter 3 - 加载游戏资源)
  • 蓝海存储开关机注意事项总结
  • 小而合理的前端理论:rscss和rsjs
  • 源码安装memcached和php memcache扩展
  • 最近的计划
  • media数据库操作,可以进行增删改查,实现回收站,隐私照片功能 SharedPreferences存储地址:
  • MPAndroidChart 教程:Y轴 YAxis
  • !!【OpenCV学习】计算两幅图像的重叠区域
  • # 睡眠3秒_床上这样睡觉的人,睡眠质量多半不好
  • #ifdef 的技巧用法
  • (arch)linux 转换文件编码格式
  • (C#)获取字符编码的类
  • (PyTorch)TCN和RNN/LSTM/GRU结合实现时间序列预测
  • (附源码)ssm学生管理系统 毕业设计 141543
  • (四)模仿学习-完成后台管理页面查询
  • .bat文件调用java类的main方法
  • .equals()到底是什么意思?
  • .NET Micro Framework初体验
  • .NET NPOI导出Excel详解
  • .NET处理HTTP请求
  • .net专家(张羿专栏)
  • @Not - Empty-Null-Blank
  • [【JSON2WEB】 13 基于REST2SQL 和 Amis 的 SQL 查询分析器
  • [codevs 1288] 埃及分数 [IDdfs 迭代加深搜索 ]